From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH] drm/i915: Extend LRC pinning to cover GPU context writeback Date: Wed, 2 Dec 2015 17:02:07 -0800 Message-ID: <565F948F.5020100@intel.com> References: <1448981337-4319-1-git-send-email-nicholas.hoath@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id C436F6EB4F for ; Wed, 2 Dec 2015 17:04:35 -0800 (PST) In-Reply-To: <1448981337-4319-1-git-send-email-nicholas.hoath@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Nick Hoath , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SSB0ZXN0ZWQgdGhpcyB3aXRoIEd1QyBzdWJtaXNzaW9uIGVuYWJsZWQgYW5kIGl0IGZpeGVzIHRo ZSBpc3N1ZSBJIGZvdW5kIApkdXJpbmcgR1BVIHJlc2V0LgoKUmV2aWV3ZWQtYnk6IEFsZXggRGFp IDx5dS5kYWlAaW50ZWwuY29tPgoKT24gMTIvMDEvMjAxNSAwNjo0OCBBTSwgTmljayBIb2F0aCB3 cm90ZToKPiBVc2UgdGhlIGZpcnN0IHJldGlyZWQgcmVxdWVzdCBvbiBhIG5ldyBjb250ZXh0IHRv IHVucGluCj4gdGhlIG9sZCBjb250ZXh0LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgaHcgY29udGV4 dCByZW1haW5zCj4gYm91bmQgdW50aWwgaXQgaGFzIGJlZW4gd3JpdHRlbiBiYWNrIHRvIGJ5IHRo ZSBHUFUuCj4gTm93IHRoYXQgdGhlIGNvbnRleHQgaXMgcGlubmVkIHVudGlsIGxhdGVyIGluIHRo ZSByZXF1ZXN0L2NvbnRleHQKPiBsaWZlY3ljbGUsIGl0IG5vIGxvbmdlciBuZWVkcyB0byBiZSBw aW5uZWQgZnJvbSBjb250ZXh0X3F1ZXVlIHRvCj4gcmV0aXJlX3JlcXVlc3RzLgo+IFRoaXMgZml4 ZXMgYW4gaXNzdWUgd2l0aCBHdUMgc3VibWlzc2lvbiB3aGVyZSB0aGUgR1BVIG1pZ2h0IG5vdAo+ IGhhdmUgZmluaXNoZWQgd3JpdGluZyBiYWNrIHRoZSBjb250ZXh0IGJlZm9yZSBpdCBpcyB1bnBp bm5lZC4gVGhpcwo+IHJlc3VsdHMgaW4gYSBHUFUgaGFuZy4KPgo+IHYyOiBNb3ZlZCB0aGUgbmV3 IHBpbiB0byBjb3ZlciBHdUMgc3VibWlzc2lvbiAoQWxleCBEYWkpCj4gICAgICBNb3ZlZCB0aGUg bmV3IHVucGluIHRvIHJlcXVlc3RfcmV0aXJlIHRvIGZpeCBjb3ZlcmFnZSBsZWFrCj4gdjM6IEFk ZGVkIHN3aXRjaCB0byBkZWZhdWx0IGNvbnRleHQgaWYgZnJlZWluZyBhIHN0aWxsIHBpbm5lZAo+ ICAgICAgY29udGV4dCBqdXN0IGluIGNhc2UgdGhlIGh3IHdhcyBhY3R1YWxseSBzdGlsbCB1c2lu ZyBpdAo+IHY0OiBVbndyYXBwZWQgY29udGV4dCB1bnBpbiB0byBhbGxvdyBjYWxsaW5nIHdpdGhv dXQgYSByZXF1ZXN0Cj4gdjU6IE9ubHkgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgY29udGV4dCBp ZiB0aGUgcmluZyBkb2Vzbid0Cj4gICAgICBhbHJlYWR5IGhhdmUgYSByZXF1ZXN0IHBlbmRpbmcg b24gaXQgKEFsZXggRGFpKQo+ICAgICAgUmVuYW1lIHVuc2F2ZWQgdG8gZGlydHkgdG8gYXZvaWQg ZG91YmxlIG5lZ2F0aXZlcyAoRGF2ZSBHb3Jkb24pCj4gICAgICBDaGFuZ2VkIF9ub19yZXEgcG9z dGZpeCB0byBfXyBwcmVmaXggZm9yIGNvbnNpc3RlbmN5IChEYXZlIEdvcmRvbikKPiAgICAgIFNw bGl0IG91dCBwZXIgZW5naW5lIGNsZWFudXAgZnJvbSBjb250ZXh0X2ZyZWUgYXMgaXQKPiAgICAg IHdhcyBnZXR0aW5nIHVud2llbGR5Cj4gICAgICBDb3JyZWN0ZWQgbG9ja2luZyAoRGF2ZSBHb3Jk b24pCj4gdjY6IFJlbW92ZWQgc29tZSBiaWtlc2hlZGRpbmcgKE1pa2EgS3VvcHBhbGEpCj4gICAg ICBBZGRlZCBleHBsYW5hdGlvbiBvZiB0aGUgR3VDIGhhbmcgdGhhdCB0aGlzIGZpeGVzIChEYW5p ZWwgVmV0dGVyKQo+IHY3OiBSZW1vdmVkIGV4dHJhIHBlciByZXF1ZXN0IHBpbm5pbmcgZnJvbSBy aW5nIHJlc2V0IGNvZGUgKEFsZXggRGFpKQo+ICAgICAgQWRkZWQgZm9yY2VkIHJpbmcgdW5waW4v Y2xlYW4gaW4gZXJyb3IgY2FzZSBpbiBjb250ZXh0IGZyZWUgKEFsZXggRGFpKQo+Cj4gU2lnbmVk LW9mZi1ieTogTmljayBIb2F0aCA8bmljaG9sYXMuaG9hdGhAaW50ZWwuY29tPgo+IElzc3VlOiBW SVotNDI3Nwo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENj OiBEYXZpZCBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IEFsZXggRGFpIDx5dS5kYWlAaW50 ZWwuY29tPgo+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNv bT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggIHwgICAxICsKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgIHwgICA3ICstCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDEzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIHwgICAxICsK PiAgIDQgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZDVjZjMwYi4uZTgyNzE3YSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04ODksNiArODg5LDcgQEAgc3RydWN0IGludGVs X2NvbnRleHQgewo+ICAgCXN0cnVjdCB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpzdGF0ZTsKPiAgIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7Cj4gKwkJYm9v bCBkaXJ0eTsKPiAgIAkJaW50IHBpbl9jb3VudDsKPiAgIAl9IGVuZ2luZVtJOTE1X05VTV9SSU5H U107Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBlOTU1NDk5Li42OWU5ZDk2 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEzNTQsNiArMTM1NCw5IEBAIHN0 YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKPiAgIHsKPiAgIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShy ZXF1ZXN0KTsKPiAgIAo+ICsJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKPiArCQlpbnRlbF9s cl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHJlcXVlc3QpOwo+ICsKPiAgIAkvKiBXZSBrbm93IHRo ZSBHUFUgbXVzdCBoYXZlIHJlYWQgdGhlIHJlcXVlc3QgdG8gaGF2ZQo+ICAgCSAqIHNlbnQgdXMg dGhlIHNlcW5vICsgaW50ZXJydXB0LCBzbyB1c2UgdGhlIHBvc2l0aW9uCj4gICAJICogb2YgdGFp bCBvZiB0aGUgcmVxdWVzdCB0byB1cGRhdGUgdGhlIGxhc3Qga25vd24gcG9zaXRpb24KPiBAQCAt Mjc2NSwxMCArMjc2OCw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51 cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCQkJCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCwKPiAgIAkJCQkJZXhlY2xpc3RfbGluayk7Cj4gICAJCQlsaXN0X2Rl bCgmc3VibWl0X3JlcS0+ZXhlY2xpc3RfbGluayk7Cj4gLQo+IC0JCQlpZiAoc3VibWl0X3JlcS0+ Y3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkKPiAtCQkJCWludGVsX2xyX2NvbnRleHRfdW5w aW4oc3VibWl0X3JlcSk7Cj4gLQo+ICAgCQkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShz dWJtaXRfcmVxKTsKPiAgIAkJfQo+ICAgCQlzcGluX3VubG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0 X2xvY2spOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMDYxODBkYy4uYjRkOWM4 ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTU2Niw5ICs1NjYsNiBAQCBz dGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmN1cnNvcjsK PiAgIAlpbnQgbnVtX2VsZW1lbnRzID0gMDsKPiAgIAo+IC0JaWYgKHJlcXVlc3QtPmN0eCAhPSBy aW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gLQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdCk7 Cj4gLQo+ICAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+ICAgCj4gICAJ c3Bpbl9sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3RfbG9jayk7Cj4gQEAgLTczMiw2ICs3MjksMTMg QEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJaWYgKGludGVsX3Jpbmdfc3RvcHBlZChyaW5nKSkK PiAgIAkJcmV0dXJuOwo+ICAgCj4gKwlpZiAocmVxdWVzdC0+Y3R4ICE9IHJpbmctPmRlZmF1bHRf Y29udGV4dCkgewo+ICsJCWlmICghcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5 KSB7Cj4gKwkJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwo+ICsJCQlyZXF1ZXN0LT5j dHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSB0cnVlOwo+ICsJCX0KPiArCX0KPiArCj4gICAJ aWYgKGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQpCj4gICAJCWk5MTVfZ3VjX3N1Ym1pdChk ZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50LCByZXF1ZXN0KTsKPiAgIAllbHNlCj4gQEAgLTk1 OCwxMiArOTYyLDYgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJc3Bpbl91bmxvY2tfaXJxKCZyaW5nLT5leGVj bGlzdF9sb2NrKTsKPiAgIAo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHRtcCwg JnJldGlyZWRfbGlzdCwgZXhlY2xpc3RfbGluaykgewo+IC0JCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHggPSByZXEtPmN0eDsKPiAtCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29i aiA9Cj4gLQkJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gLQo+IC0JCWlmIChjdHhf b2JqICYmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSkKPiAtCQkJaW50ZWxfbHJfY29u dGV4dF91bnBpbihyZXEpOwo+ICAgCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9saW5rKTsKPiAg IAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICAgCX0KPiBAQCAtMTA1OCwy MSArMTA1NiwzOSBAQCByZXNldF9waW5fY291bnQ6Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAg IAo+IC12b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpycSkKPiArc3RhdGljIHZvaWQgX19pbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAg IHsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBycS0+cmluZzsKPiAtCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlk XS5zdGF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcnEtPnJpbmdi dWY7Cj4gLQo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVu Z2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ICAgCWlmIChjdHhfb2JqKSB7Cj4g ICAJCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsK PiAtCQlpZiAoLS1ycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7Cj4g KwkJaWYgKC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7Cj4gICAJCQlp bnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAgIAkJCWk5MTVfZ2VtX29iamVj dF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICAgCQl9Cj4gICAJfQo+ICAgfQo+ICAgCj4gK3ZvaWQg aW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ ICt7Cj4gKwlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4ocnEtPnJpbmcsIHJxLT5jdHgpOwo+ICt9 Cj4gKwo+ICt2b2lkIGludGVsX2xyX2NvbnRleHRfY29tcGxldGVfY2hlY2soc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcgPSByZXEtPnJpbmc7Cj4gKwo+ICsJaWYgKHJpbmctPmxhc3RfY29udGV4dCAmJiByaW5nLT5s YXN0X2NvbnRleHQgIT0gcmVxLT5jdHggJiYKPiArCQkJcmluZy0+bGFzdF9jb250ZXh0LT5lbmdp bmVbcmluZy0+aWRdLmRpcnR5KSB7Cj4gKwkJX19pbnRlbF9scl9jb250ZXh0X3VucGluKAo+ICsJ CQkJcmluZywKPiArCQkJCXJpbmctPmxhc3RfY29udGV4dCk7Cj4gKwkJcmluZy0+bGFzdF9jb250 ZXh0LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0gZmFsc2U7Cj4gKwl9Cj4gKwlyaW5nLT5sYXN0 X2NvbnRleHQgPSByZXEtPmN0eDsKPiArfQo+ICsKPiAgIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNh bF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEp Cj4gICB7Cj4gICAJaW50IHJldCwgaTsKPiBAQCAtMjM2Nyw2ICsyMzgzLDc2IEBAIHBvcHVsYXRl X2xyX2NvbnRleHQoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vCj4gICB9Cj4gICAKPiAgIC8qKgo+ICsgKiBpbnRlbF9scl9jb250ZXh0 X2NsZWFuX3JpbmcoKSAtIGNsZWFuIHRoZSByaW5nIHNwZWNpZmljIHBhcnRzIG9mIGFuIExSQwo+ ICsgKiBAY3R4OiB0aGUgTFIgY29udGV4dCBiZWluZyBmcmVlZC4KPiArICogQHJpbmc6IHRoZSBl bmdpbmUgYmVpbmcgY2xlYW5lZAo+ICsgKiBAY3R4X29iajogdGhlIGh3IGNvbnRleHQgYmVpbmcg dW5yZWZlcmVuY2VkCj4gKyAqIEByaW5nYnVmOiB0aGUgcmluZ2J1ZiBiZWluZyBmcmVlZAo+ICsg Kgo+ICsgKiBUYWtlIGNhcmUgb2YgY2xlYW5pbmcgdXAgdGhlIHBlci1lbmdpbmUgYmFja2luZwo+ ICsgKiBvYmplY3RzIGFuZCB0aGUgbG9naWNhbCByaW5nYnVmZmVyLgo+ICsgKi8KPiArc3RhdGlj IHZvaWQKPiAraW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHgsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCQkgICAg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmosCj4gKwkJCSAgICBzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwlXQVJOX09O KCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7Cj4gKwo+ICsJaWYg KGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiArCQlpbnRlbF91bnBpbl9yaW5nYnVm ZmVyX29iaihyaW5nYnVmKTsKPiArCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2Jq KTsKPiArCX0KPiArCj4gKwlpZiAoY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5KSB7Cj4gKwkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBOVUxMOwo+ICsKPiArCQkvKioKPiAr CQkgKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgcmVxdWVzdCBwZW5kaW5nIG9uCj4gKwkJICogdGhp cyByaW5nLCB3YWl0IGZvciB0aGF0IHRvIGNvbXBsZXRlLAo+ICsJCSAqIG90aGVyd2lzZSBjcmVh dGUgYSBzd2l0Y2ggdG8gaWRsZSByZXF1ZXN0Cj4gKwkJICovCj4gKwkJaWYgKGxpc3RfZW1wdHko JnJpbmctPnJlcXVlc3RfbGlzdCkpIHsKPiArCQkJaW50IHJldDsKPiArCj4gKwkJCXJldCA9IGk5 MTVfZ2VtX3JlcXVlc3RfYWxsb2MoCj4gKwkJCQkJcmluZywKPiArCQkJCQlyaW5nLT5kZWZhdWx0 X2NvbnRleHQsCj4gKwkJCQkJJnJlcSk7Cj4gKwkJCWlmICghcmV0KQo+ICsJCQkJaTkxNV9hZGRf cmVxdWVzdChyZXEpOwo+ICsJCQllbHNlCj4gKwkJCQlEUk1fREVCVUcoIkZhaWxlZCB0byBlbnN1 cmUgY29udGV4dCBzYXZlZCIpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXJlcSA9IGxpc3RfZmlyc3Rf ZW50cnkoCj4gKwkJCQkJJnJpbmctPnJlcXVlc3RfbGlzdCwKPiArCQkJCQl0eXBlb2YoKnJlcSks IGxpc3QpOwo+ICsJCX0KPiArCQlpZiAocmVxKSB7Cj4gKwkJCXJldCA9IGk5MTVfd2FpdF9yZXF1 ZXN0KHJlcSk7Cj4gKwkJCWlmIChyZXQgIT0gMCkgewo+ICsJCQkJLyoqCj4gKwkJCQkgKiBJZiB3 ZSBnZXQgaGVyZSwgdGhlcmUncyBwcm9iYWJseSBiZWVuIGEgcmluZwo+ICsJCQkJICogcmVzZXQs IHNvIHdlIGp1c3QgY2xlYW4gdXAgdGhlIGRpcnR5IGZsYWcuJgo+ICsJCQkJICogcGluIGNvdW50 Lgo+ICsJCQkJICovCj4gKwkJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsK PiArCQkJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKPiArCQkJCQlyaW5nLAo+ICsJCQkJCWN0 eCk7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwo+ICsJV0FSTl9PTihjdHgtPmVuZ2luZVtyaW5n LT5pZF0ucGluX2NvdW50KTsKPiArCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nYnVmKTsKPiAr CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPiArfQo+ICsKPiAr LyoqCj4gICAgKiBpbnRlbF9scl9jb250ZXh0X2ZyZWUoKSAtIGZyZWUgdGhlIExSQyBzcGVjaWZp YyBiaXRzIG9mIGEgY29udGV4dAo+ICAgICogQGN0eDogdGhlIExSIGNvbnRleHQgdG8gZnJlZS4K PiAgICAqCj4gQEAgLTIzNzgsNyArMjQ2NCw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVl KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gICB7Cj4gICAJaW50IGk7Cj4gICAKPiAtCWZv ciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwg STkxNV9OVU1fUklOR1M7ICsraSkgewo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Y3R4X29iaiA9IGN0eC0+ZW5naW5lW2ldLnN0YXRlOwo+ICAgCj4gICAJCWlmIChjdHhfb2JqKSB7 Cj4gQEAgLTIzODYsMTMgKzI0NzIsMTAgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAgIAkJCQkJY3R4LT5lbmdpbmVbaV0ucmluZ2J1ZjsK PiAgIAkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+ICAg Cj4gLQkJCWlmIChjdHggPT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gLQkJCQlpbnRlbF91 bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAtCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0 X3VucGluKGN0eF9vYmopOwo+IC0JCQl9Cj4gLQkJCVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+ aWRdLnBpbl9jb3VudCk7Cj4gLQkJCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nYnVmKTsKPiAt CQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ICsJCQlpbnRl bF9scl9jb250ZXh0X2NsZWFuX3JpbmcoY3R4LAo+ICsJCQkJCQkgICAgcmluZywKPiArCQkJCQkJ ICAgIGN0eF9vYmosCj4gKwkJCQkJCSAgICByaW5nYnVmKTsKPiAgIAkJfQo+ICAgCX0KPiAgIH0K PiBAQCAtMjU1NCw1ICsyNjM3LDEyIEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCj4gICAJCXJpbmdidWYtPmhlYWQgPSAwOwo+ICAgCQly aW5nYnVmLT50YWlsID0gMDsKPiArCj4gKwkJaWYgKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0 eSkgewo+ICsJCQlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oCj4gKwkJCQkJcmluZywKPiArCQkJ CQljdHgpOwo+ICsJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsKPiArCQl9 Cj4gICAJfQo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gaW5kZXggNGU2MGQ1NC4u Y2JjNDJiOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gQEAgLTg2LDYgKzg2LDcg QEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g ICAJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPiAgIHVpbnQ2NF90IGludGVsX2xyX2Nv bnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgCQkJCSAgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gK3ZvaWQgaW50ZWxfbHJfY29udGV4dF9j b21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gICAKPiAg IC8qIEV4ZWNsaXN0cyAqLwo+ICAgaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVuYWJsZV9leGVjbGlzdHMpOwoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK