From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH v8] drm/i915: Extend LRC pinning to cover GPU context writeback Date: Wed, 9 Dec 2015 08:44:00 -0800 Message-ID: <56685A50.50000@intel.com> References: <1449508238-27500-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id C55596E264 for ; Wed, 9 Dec 2015 08:46:30 -0800 (PST) In-Reply-To: <1449508238-27500-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 UmV2aWV3ZWQtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgoKT24gMTIvMDcvMjAxNSAw OToxMCBBTSwgTmljayBIb2F0aCB3cm90ZToKPiBVc2UgdGhlIGZpcnN0IHJldGlyZWQgcmVxdWVz dCBvbiBhIG5ldyBjb250ZXh0IHRvIHVucGluCj4gdGhlIG9sZCBjb250ZXh0LiBUaGlzIGVuc3Vy ZXMgdGhhdCB0aGUgaHcgY29udGV4dCByZW1haW5zCj4gYm91bmQgdW50aWwgaXQgaGFzIGJlZW4g d3JpdHRlbiBiYWNrIHRvIGJ5IHRoZSBHUFUuCj4gTm93IHRoYXQgdGhlIGNvbnRleHQgaXMgcGlu bmVkIHVudGlsIGxhdGVyIGluIHRoZSByZXF1ZXN0L2NvbnRleHQKPiBsaWZlY3ljbGUsIGl0IG5v IGxvbmdlciBuZWVkcyB0byBiZSBwaW5uZWQgZnJvbSBjb250ZXh0X3F1ZXVlIHRvCj4gcmV0aXJl X3JlcXVlc3RzLgo+IFRoaXMgZml4ZXMgYW4gaXNzdWUgd2l0aCBHdUMgc3VibWlzc2lvbiB3aGVy ZSB0aGUgR1BVIG1pZ2h0IG5vdAo+IGhhdmUgZmluaXNoZWQgd3JpdGluZyBiYWNrIHRoZSBjb250 ZXh0IGJlZm9yZSBpdCBpcyB1bnBpbm5lZC4gVGhpcwo+IHJlc3VsdHMgaW4gYSBHUFUgaGFuZy4K Pgo+IHYyOiBNb3ZlZCB0aGUgbmV3IHBpbiB0byBjb3ZlciBHdUMgc3VibWlzc2lvbiAoQWxleCBE YWkpCj4gICAgICBNb3ZlZCB0aGUgbmV3IHVucGluIHRvIHJlcXVlc3RfcmV0aXJlIHRvIGZpeCBj b3ZlcmFnZSBsZWFrCj4gdjM6IEFkZGVkIHN3aXRjaCB0byBkZWZhdWx0IGNvbnRleHQgaWYgZnJl ZWluZyBhIHN0aWxsIHBpbm5lZAo+ICAgICAgY29udGV4dCBqdXN0IGluIGNhc2UgdGhlIGh3IHdh cyBhY3R1YWxseSBzdGlsbCB1c2luZyBpdAo+IHY0OiBVbndyYXBwZWQgY29udGV4dCB1bnBpbiB0 byBhbGxvdyBjYWxsaW5nIHdpdGhvdXQgYSByZXF1ZXN0Cj4gdjU6IE9ubHkgY3JlYXRlIGEgc3dp dGNoIHRvIGlkbGUgY29udGV4dCBpZiB0aGUgcmluZyBkb2Vzbid0Cj4gICAgICBhbHJlYWR5IGhh dmUgYSByZXF1ZXN0IHBlbmRpbmcgb24gaXQgKEFsZXggRGFpKQo+ICAgICAgUmVuYW1lIHVuc2F2 ZWQgdG8gZGlydHkgdG8gYXZvaWQgZG91YmxlIG5lZ2F0aXZlcyAoRGF2ZSBHb3Jkb24pCj4gICAg ICBDaGFuZ2VkIF9ub19yZXEgcG9zdGZpeCB0byBfXyBwcmVmaXggZm9yIGNvbnNpc3RlbmN5IChE YXZlIEdvcmRvbikKPiAgICAgIFNwbGl0IG91dCBwZXIgZW5naW5lIGNsZWFudXAgZnJvbSBjb250 ZXh0X2ZyZWUgYXMgaXQKPiAgICAgIHdhcyBnZXR0aW5nIHVud2llbGR5Cj4gICAgICBDb3JyZWN0 ZWQgbG9ja2luZyAoRGF2ZSBHb3Jkb24pCj4gdjY6IFJlbW92ZWQgc29tZSBiaWtlc2hlZGRpbmcg KE1pa2EgS3VvcHBhbGEpCj4gICAgICBBZGRlZCBleHBsYW5hdGlvbiBvZiB0aGUgR3VDIGhhbmcg dGhhdCB0aGlzIGZpeGVzIChEYW5pZWwgVmV0dGVyKQo+IHY3OiBSZW1vdmVkIGV4dHJhIHBlciBy ZXF1ZXN0IHBpbm5pbmcgZnJvbSByaW5nIHJlc2V0IGNvZGUgKEFsZXggRGFpKQo+ICAgICAgQWRk ZWQgZm9yY2VkIHJpbmcgdW5waW4vY2xlYW4gaW4gZXJyb3IgY2FzZSBpbiBjb250ZXh0IGZyZWUg KEFsZXggRGFpKQo+IHY4OiBSZW5hbWVkIGxyYyBzcGVjaWZpYyBsYXN0X2NvbnRleHQgdG8gbHJj X2xhc3RfY29udGV4dCBhcyB0aGVyZQo+ICAgICAgd2VyZSBzb21lIHJlc2V0IGNhc2VzIHdoZXJl IHRoZSBjb2RlcGF0aHMgbGVha2VkIChNaWthIEt1b3BwYWxhKQo+ICAgICAgTlVMTCdkIGxhc3Rf Y29udGV4dCBpbiByZXNldCBjYXNlIC0gdGhlcmUgd2FzIGEgcG9pbnRlciBsZWFrCj4gICAgICBp ZiBzb21lb25lIGRpZCByZXNldC0+Y2xvc2UgY29udGV4dC4KPiBTaWduZWQtb2ZmLWJ5OiBOaWNr IEhvYXRoIDxuaWNob2xhcy5ob2F0aEBpbnRlbC5jb20+Cj4gSXNzdWU6IFZJWi00Mjc3Cj4gQ2M6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IERhdmlkIEdvcmRv biA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPiBDYzogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4gQ2M6 IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgICAxICsKPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICAgNyArLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMTM4ICsrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAg fCAgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgICAx ICsKPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggOWFiM2UyNS4uYTU5Y2ExMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04ODQsNiArODg0LDcgQEAgc3RydWN0IGlu dGVsX2NvbnRleHQgewo+ICAgCXN0cnVjdCB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpzdGF0ZTsKPiAgIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7Cj4gKwkJ Ym9vbCBkaXJ0eTsKPiAgIAkJaW50IHBpbl9jb3VudDsKPiAgIAl9IGVuZ2luZVtJOTE1X05VTV9S SU5HU107Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBhNjk5N2E4Li5jZDI3 ZWNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEzNjIsNiArMTM2Miw5IEBA IHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCkKPiAgIHsKPiAgIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3JldGly ZShyZXF1ZXN0KTsKPiAgIAo+ICsJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKPiArCQlpbnRl bF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHJlcXVlc3QpOwo+ICsKPiAgIAkvKiBXZSBrbm93 IHRoZSBHUFUgbXVzdCBoYXZlIHJlYWQgdGhlIHJlcXVlc3QgdG8gaGF2ZQo+ICAgCSAqIHNlbnQg dXMgdGhlIHNlcW5vICsgaW50ZXJydXB0LCBzbyB1c2UgdGhlIHBvc2l0aW9uCj4gICAJICogb2Yg dGFpbCBvZiB0aGUgcmVxdWVzdCB0byB1cGRhdGUgdGhlIGxhc3Qga25vd24gcG9zaXRpb24KPiBA QCAtMjc3MiwxMCArMjc3NSw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xl YW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCQkJCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCwKPiAgIAkJCQkJZXhlY2xpc3RfbGluayk7Cj4gICAJCQlsaXN0 X2RlbCgmc3VibWl0X3JlcS0+ZXhlY2xpc3RfbGluayk7Cj4gLQo+IC0JCQlpZiAoc3VibWl0X3Jl cS0+Y3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkKPiAtCQkJCWludGVsX2xyX2NvbnRleHRf dW5waW4oc3VibWl0X3JlcSk7Cj4gLQo+ICAgCQkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5j ZShzdWJtaXRfcmVxKTsKPiAgIAkJfQo+ICAgCQlzcGluX3VubG9ja19pcnEoJnJpbmctPmV4ZWNs aXN0X2xvY2spOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNGViYWZhYi4uZjk2 ZmI1MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTU3MSw5ICs1NzEsNiBA QCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCkKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmN1cnNv cjsKPiAgIAlpbnQgbnVtX2VsZW1lbnRzID0gMDsKPiAgIAo+IC0JaWYgKHJlcXVlc3QtPmN0eCAh PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gLQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVz dCk7Cj4gLQo+ICAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+ICAgCj4g ICAJc3Bpbl9sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3RfbG9jayk7Cj4gQEAgLTczNyw2ICs3MzQs MTMgQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJaWYgKGludGVsX3Jpbmdfc3RvcHBlZChyaW5n KSkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gKwlpZiAocmVxdWVzdC0+Y3R4ICE9IHJpbmctPmRlZmF1 bHRfY29udGV4dCkgewo+ICsJCWlmICghcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmRp cnR5KSB7Cj4gKwkJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwo+ICsJCQlyZXF1ZXN0 LT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSB0cnVlOwo+ICsJCX0KPiArCX0KPiArCj4g ICAJaWYgKGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQpCj4gICAJCWk5MTVfZ3VjX3N1Ym1p dChkZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50LCByZXF1ZXN0KTsKPiAgIAllbHNlCj4gQEAg LTk2MywxMiArOTY3LDYgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJc3Bpbl91bmxvY2tfaXJxKCZyaW5nLT5l eGVjbGlzdF9sb2NrKTsKPiAgIAo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHRt cCwgJnJldGlyZWRfbGlzdCwgZXhlY2xpc3RfbGluaykgewo+IC0JCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHggPSByZXEtPmN0eDsKPiAtCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4 X29iaiA9Cj4gLQkJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gLQo+IC0JCWlmIChj dHhfb2JqICYmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSkKPiAtCQkJaW50ZWxfbHJf Y29udGV4dF91bnBpbihyZXEpOwo+ICAgCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9saW5rKTsK PiAgIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ICAgCX0KPiBAQCAtMTA2 MywyMSArMTA2MSwzOSBAQCByZXNldF9waW5fY291bnQ6Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0K PiAgIAo+IC12b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycSkKPiArc3RhdGljIHZvaWQgX19pbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkK PiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBycS0+cmluZzsKPiAtCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gcnEtPmN0eC0+ZW5naW5lW3Jpbmct PmlkXS5zdGF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcnEtPnJp bmdidWY7Cj4gLQo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgt PmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ICAgCWlmIChjdHhfb2JqKSB7 Cj4gICAJCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKPiAtCQlpZiAoLS1ycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7 Cj4gKwkJaWYgKC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7Cj4gICAJ CQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAgIAkJCWk5MTVfZ2VtX29i amVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICAgCQl9Cj4gICAJfQo+ICAgfQo+ICAgCj4gK3Zv aWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJx KQo+ICt7Cj4gKwlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4ocnEtPnJpbmcsIHJxLT5jdHgpOwo+ ICt9Cj4gKwo+ICt2b2lkIGludGVsX2xyX2NvbnRleHRfY29tcGxldGVfY2hlY2soc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcgPSByZXEtPnJpbmc7Cj4gKwo+ICsJaWYgKHJpbmctPmxyY19sYXN0X2NvbnRleHQgJiYg cmluZy0+bHJjX2xhc3RfY29udGV4dCAhPSByZXEtPmN0eCAmJgo+ICsJCQlyaW5nLT5scmNfbGFz dF9jb250ZXh0LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5KSB7Cj4gKwkJX19pbnRlbF9scl9jb250 ZXh0X3VucGluKAo+ICsJCQkJcmluZywKPiArCQkJCXJpbmctPmxyY19sYXN0X2NvbnRleHQpOwo+ ICsJCXJpbmctPmxyY19sYXN0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxz ZTsKPiArCX0KPiArCXJpbmctPmxyY19sYXN0X2NvbnRleHQgPSByZXEtPmN0eDsKPiArfQo+ICsK PiAgIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gICAJaW50IHJldCwgaTsKPiBAQCAt MjM1Miw2ICsyMzY4LDc2IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vCj4gICB9Cj4gICAKPiAg IC8qKgo+ICsgKiBpbnRlbF9scl9jb250ZXh0X2NsZWFuX3JpbmcoKSAtIGNsZWFuIHRoZSByaW5n IHNwZWNpZmljIHBhcnRzIG9mIGFuIExSQwo+ICsgKiBAY3R4OiB0aGUgTFIgY29udGV4dCBiZWlu ZyBmcmVlZC4KPiArICogQHJpbmc6IHRoZSBlbmdpbmUgYmVpbmcgY2xlYW5lZAo+ICsgKiBAY3R4 X29iajogdGhlIGh3IGNvbnRleHQgYmVpbmcgdW5yZWZlcmVuY2VkCj4gKyAqIEByaW5nYnVmOiB0 aGUgcmluZ2J1ZiBiZWluZyBmcmVlZAo+ICsgKgo+ICsgKiBUYWtlIGNhcmUgb2YgY2xlYW5pbmcg dXAgdGhlIHBlci1lbmdpbmUgYmFja2luZwo+ICsgKiBvYmplY3RzIGFuZCB0aGUgbG9naWNhbCBy aW5nYnVmZmVyLgo+ICsgKi8KPiArc3RhdGljIHZvaWQKPiAraW50ZWxfbHJfY29udGV4dF9jbGVh bl9yaW5nKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAo+ICsJCQkgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmosCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArewo+ ICsJaW50IHJldDsKPiArCj4gKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+ c3RydWN0X211dGV4KSk7Cj4gKwo+ICsJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQp IHsKPiArCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiArCQlpOTE1X2dl bV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiArCX0KPiArCj4gKwlpZiAoY3R4LT5lbmdp bmVbcmluZy0+aWRdLmRpcnR5KSB7Cj4gKwkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEgPSBOVUxMOwo+ICsKPiArCQkvKioKPiArCQkgKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgcmVx dWVzdCBwZW5kaW5nIG9uCj4gKwkJICogdGhpcyByaW5nLCB3YWl0IGZvciB0aGF0IHRvIGNvbXBs ZXRlLAo+ICsJCSAqIG90aGVyd2lzZSBjcmVhdGUgYSBzd2l0Y2ggdG8gaWRsZSByZXF1ZXN0Cj4g KwkJICovCj4gKwkJaWYgKGxpc3RfZW1wdHkoJnJpbmctPnJlcXVlc3RfbGlzdCkpIHsKPiArCQkJ aW50IHJldDsKPiArCj4gKwkJCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoCj4gKwkJCQkJ cmluZywKPiArCQkJCQlyaW5nLT5kZWZhdWx0X2NvbnRleHQsCj4gKwkJCQkJJnJlcSk7Cj4gKwkJ CWlmICghcmV0KQo+ICsJCQkJaTkxNV9hZGRfcmVxdWVzdChyZXEpOwo+ICsJCQllbHNlCj4gKwkJ CQlEUk1fREVCVUcoIkZhaWxlZCB0byBlbnN1cmUgY29udGV4dCBzYXZlZCIpOwo+ICsJCX0gZWxz ZSB7Cj4gKwkJCXJlcSA9IGxpc3RfZmlyc3RfZW50cnkoCj4gKwkJCQkJJnJpbmctPnJlcXVlc3Rf bGlzdCwKPiArCQkJCQl0eXBlb2YoKnJlcSksIGxpc3QpOwo+ICsJCX0KPiArCQlpZiAocmVxKSB7 Cj4gKwkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KHJlcSk7Cj4gKwkJCWlmIChyZXQgIT0gMCkg ewo+ICsJCQkJLyoqCj4gKwkJCQkgKiBJZiB3ZSBnZXQgaGVyZSwgdGhlcmUncyBwcm9iYWJseSBi ZWVuIGEgcmluZwo+ICsJCQkJICogcmVzZXQsIHNvIHdlIGp1c3QgY2xlYW4gdXAgdGhlIGRpcnR5 IGZsYWcuJgo+ICsJCQkJICogcGluIGNvdW50Lgo+ICsJCQkJICovCj4gKwkJCQljdHgtPmVuZ2lu ZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsKPiArCQkJCV9faW50ZWxfbHJfY29udGV4dF91bnBp bigKPiArCQkJCQlyaW5nLAo+ICsJCQkJCWN0eCk7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwo+ ICsJV0FSTl9PTihjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiArCWludGVsX3Jp bmdidWZmZXJfZnJlZShyaW5nYnVmKTsKPiArCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZj dHhfb2JqLT5iYXNlKTsKPiArfQo+ICsKPiArLyoqCj4gICAgKiBpbnRlbF9scl9jb250ZXh0X2Zy ZWUoKSAtIGZyZWUgdGhlIExSQyBzcGVjaWZpYyBiaXRzIG9mIGEgY29udGV4dAo+ICAgICogQGN0 eDogdGhlIExSIGNvbnRleHQgdG8gZnJlZS4KPiAgICAqCj4gQEAgLTIzNjMsNyArMjQ0OSw3IEBA IHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4g ICB7Cj4gICAJaW50IGk7Cj4gICAKPiAtCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsg aSsrKSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7ICsraSkgewo+ICAgCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW2ldLnN0YXRl Owo+ICAgCj4gICAJCWlmIChjdHhfb2JqKSB7Cj4gQEAgLTIzNzEsMTMgKzI0NTcsMTAgQEAgdm9p ZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAgIAkJ CQkJY3R4LT5lbmdpbmVbaV0ucmluZ2J1ZjsKPiAgIAkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+ICAgCj4gLQkJCWlmIChjdHggPT0gcmluZy0+ZGVmYXVs dF9jb250ZXh0KSB7Cj4gLQkJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsK PiAtCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+IC0JCQl9Cj4gLQkJ CVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCk7Cj4gLQkJCWludGVsX3Jp bmdidWZmZXJfZnJlZShyaW5nYnVmKTsKPiAtCQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo JmN0eF9vYmotPmJhc2UpOwo+ICsJCQlpbnRlbF9scl9jb250ZXh0X2NsZWFuX3JpbmcoY3R4LAo+ ICsJCQkJCQkgICAgcmluZywKPiArCQkJCQkJICAgIGN0eF9vYmosCj4gKwkJCQkJCSAgICByaW5n YnVmKTsKPiAgIAkJfQo+ICAgCX0KPiAgIH0KPiBAQCAtMjUzOSw1ICsyNjIyLDE0IEBAIHZvaWQg aW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCj4gICAJ CXJpbmdidWYtPmhlYWQgPSAwOwo+ICAgCQlyaW5nYnVmLT50YWlsID0gMDsKPiArCj4gKwkJaWYg KGN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ICsJCQlfX2ludGVsX2xyX2NvbnRleHRf dW5waW4oCj4gKwkJCQkJcmluZywKPiArCQkJCQljdHgpOwo+ICsJCQljdHgtPmVuZ2luZVtyaW5n LT5pZF0uZGlydHkgPSBmYWxzZTsKPiArCQkJaWYgKHJpbmctPmxyY19sYXN0X2NvbnRleHQgPT0g Y3R4KQo+ICsJCQkJcmluZy0+bHJjX2xhc3RfY29udGV4dCA9IE5VTEw7Cj4gKwkJfQo+ICAgCX0K PiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IGluZGV4IDBiODIxYjkuLmZkMWI2YjQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC05MSw2ICs5MSw3IEBAIHZvaWQg aW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCk7Cj4gICB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rl c2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJCQkgICAgIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICt2b2lkIGludGVsX2xyX2NvbnRleHRfY29tcGxldGVf Y2hlY2soc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+ICAgCj4gICAvKiBFeGVj bGlzdHMgKi8KPiAgIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVfZXhlY2xpc3RzKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXggNWQxZWIyMC4uN2M5MTNlNyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjc1LDYgKzI3NSw3IEBA IHN0cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKPiAgIAkJCQkgICAgICB1MzIgZmx1c2hfZG9tYWlu cyk7Cj4gICAJaW50CQkoKmVtaXRfYmJfc3RhcnQpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLAo+ICAgCQkJCQkgdTY0IG9mZnNldCwgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpOwo+ ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmxyY19sYXN0X2NvbnRleHQ7Cj4gICAKPiAgIAkvKioK PiAgIAkgKiBMaXN0IG9mIG9iamVjdHMgY3VycmVudGx5IGludm9sdmVkIGluIHJlbmRlcmluZyBm cm9tIHRoZQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK