From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Extend LRC pinning to cover GPU context writeback Date: Thu, 3 Dec 2015 10:44:36 +0100 Message-ID: <20151203094436.GN10243@phenom.ffwll.local> References: <1448981337-4319-1-git-send-email-nicholas.hoath@intel.com> <565F948F.5020100@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 82CA96E1DC for ; Thu, 3 Dec 2015 01:44:41 -0800 (PST) Received: by wmec201 with SMTP id c201so14195501wme.1 for ; Thu, 03 Dec 2015 01:44:40 -0800 (PST) Content-Disposition: inline In-Reply-To: <565F948F.5020100@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Yu Dai Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBEZWMgMDIsIDIwMTUgYXQgMDU6MDI6MDdQTSAtMDgwMCwgWXUgRGFpIHdyb3RlOgo+ IEkgdGVzdGVkIHRoaXMgd2l0aCBHdUMgc3VibWlzc2lvbiBlbmFibGVkIGFuZCBpdCBmaXhlcyB0 aGUgaXNzdWUgSSBmb3VuZAo+IGR1cmluZyBHUFUgcmVzZXQuCj4gCj4gUmV2aWV3ZWQtYnk6IEFs ZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgoKUXVldWVkIGZvciAtbmV4dCwgdGhhbmtzIGZvciB0 aGUgcGF0Y2guCi1EYW5pZWwKCj4gCj4gT24gMTIvMDEvMjAxNSAwNjo0OCBBTSwgTmljayBIb2F0 aCB3cm90ZToKPiA+VXNlIHRoZSBmaXJzdCByZXRpcmVkIHJlcXVlc3Qgb24gYSBuZXcgY29udGV4 dCB0byB1bnBpbgo+ID50aGUgb2xkIGNvbnRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBodyBj b250ZXh0IHJlbWFpbnMKPiA+Ym91bmQgdW50aWwgaXQgaGFzIGJlZW4gd3JpdHRlbiBiYWNrIHRv IGJ5IHRoZSBHUFUuCj4gPk5vdyB0aGF0IHRoZSBjb250ZXh0IGlzIHBpbm5lZCB1bnRpbCBsYXRl ciBpbiB0aGUgcmVxdWVzdC9jb250ZXh0Cj4gPmxpZmVjeWNsZSwgaXQgbm8gbG9uZ2VyIG5lZWRz IHRvIGJlIHBpbm5lZCBmcm9tIGNvbnRleHRfcXVldWUgdG8KPiA+cmV0aXJlX3JlcXVlc3RzLgo+ ID5UaGlzIGZpeGVzIGFuIGlzc3VlIHdpdGggR3VDIHN1Ym1pc3Npb24gd2hlcmUgdGhlIEdQVSBt aWdodCBub3QKPiA+aGF2ZSBmaW5pc2hlZCB3cml0aW5nIGJhY2sgdGhlIGNvbnRleHQgYmVmb3Jl IGl0IGlzIHVucGlubmVkLiBUaGlzCj4gPnJlc3VsdHMgaW4gYSBHUFUgaGFuZy4KPiA+Cj4gPnYy OiBNb3ZlZCB0aGUgbmV3IHBpbiB0byBjb3ZlciBHdUMgc3VibWlzc2lvbiAoQWxleCBEYWkpCj4g PiAgICAgTW92ZWQgdGhlIG5ldyB1bnBpbiB0byByZXF1ZXN0X3JldGlyZSB0byBmaXggY292ZXJh Z2UgbGVhawo+ID52MzogQWRkZWQgc3dpdGNoIHRvIGRlZmF1bHQgY29udGV4dCBpZiBmcmVlaW5n IGEgc3RpbGwgcGlubmVkCj4gPiAgICAgY29udGV4dCBqdXN0IGluIGNhc2UgdGhlIGh3IHdhcyBh Y3R1YWxseSBzdGlsbCB1c2luZyBpdAo+ID52NDogVW53cmFwcGVkIGNvbnRleHQgdW5waW4gdG8g YWxsb3cgY2FsbGluZyB3aXRob3V0IGEgcmVxdWVzdAo+ID52NTogT25seSBjcmVhdGUgYSBzd2l0 Y2ggdG8gaWRsZSBjb250ZXh0IGlmIHRoZSByaW5nIGRvZXNuJ3QKPiA+ICAgICBhbHJlYWR5IGhh dmUgYSByZXF1ZXN0IHBlbmRpbmcgb24gaXQgKEFsZXggRGFpKQo+ID4gICAgIFJlbmFtZSB1bnNh dmVkIHRvIGRpcnR5IHRvIGF2b2lkIGRvdWJsZSBuZWdhdGl2ZXMgKERhdmUgR29yZG9uKQo+ID4g ICAgIENoYW5nZWQgX25vX3JlcSBwb3N0Zml4IHRvIF9fIHByZWZpeCBmb3IgY29uc2lzdGVuY3kg KERhdmUgR29yZG9uKQo+ID4gICAgIFNwbGl0IG91dCBwZXIgZW5naW5lIGNsZWFudXAgZnJvbSBj b250ZXh0X2ZyZWUgYXMgaXQKPiA+ICAgICB3YXMgZ2V0dGluZyB1bndpZWxkeQo+ID4gICAgIENv cnJlY3RlZCBsb2NraW5nIChEYXZlIEdvcmRvbikKPiA+djY6IFJlbW92ZWQgc29tZSBiaWtlc2hl ZGRpbmcgKE1pa2EgS3VvcHBhbGEpCj4gPiAgICAgQWRkZWQgZXhwbGFuYXRpb24gb2YgdGhlIEd1 QyBoYW5nIHRoYXQgdGhpcyBmaXhlcyAoRGFuaWVsIFZldHRlcikKPiA+djc6IFJlbW92ZWQgZXh0 cmEgcGVyIHJlcXVlc3QgcGlubmluZyBmcm9tIHJpbmcgcmVzZXQgY29kZSAoQWxleCBEYWkpCj4g PiAgICAgQWRkZWQgZm9yY2VkIHJpbmcgdW5waW4vY2xlYW4gaW4gZXJyb3IgY2FzZSBpbiBjb250 ZXh0IGZyZWUgKEFsZXggRGFpKQo+ID4KPiA+U2lnbmVkLW9mZi1ieTogTmljayBIb2F0aCA8bmlj aG9sYXMuaG9hdGhAaW50ZWwuY29tPgo+ID5Jc3N1ZTogVklaLTQyNzcKPiA+Q2M6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPkNjOiBEYXZpZCBHb3Jkb24gPGRhdmlk LnMuZ29yZG9uQGludGVsLmNvbT4KPiA+Q2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+ID5DYzogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4gPkNjOiBNaWth IEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+LS0tCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgfCAgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgIHwgICA3ICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgfCAxMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggfCAgIDEgKwo+ID4gIDQgZmlsZXMg Y2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+ID4KPiA+ZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPmluZGV4IGQ1Y2YzMGIuLmU4MjcxN2EgMTAwNjQ0Cj4gPi0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ID5AQCAtODg5LDYgKzg4OSw3IEBAIHN0cnVjdCBpbnRlbF9jb250 ZXh0IHsKPiA+ICAJc3RydWN0IHsKPiA+ICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpz dGF0ZTsKPiA+ICAJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOwo+ID4rCQlib29s IGRpcnR5Owo+ID4gIAkJaW50IHBpbl9jb3VudDsKPiA+ICAJfSBlbmdpbmVbSTkxNV9OVU1fUklO R1NdOwo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+aW5kZXggZTk1NTQ5OS4uNjllOWQ5NiAx MDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4rKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPkBAIC0xMzU0LDYgKzEzNTQsOSBAQCBz dGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCj4gPiAgewo+ID4gIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3JldGly ZShyZXF1ZXN0KTsKPiA+KwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+ID4rCQlpbnRlbF9s cl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHJlcXVlc3QpOwo+ID4rCj4gPiAgCS8qIFdlIGtub3cg dGhlIEdQVSBtdXN0IGhhdmUgcmVhZCB0aGUgcmVxdWVzdCB0byBoYXZlCj4gPiAgCSAqIHNlbnQg dXMgdGhlIHNlcW5vICsgaW50ZXJydXB0LCBzbyB1c2UgdGhlIHBvc2l0aW9uCj4gPiAgCSAqIG9m IHRhaWwgb2YgdGhlIHJlcXVlc3QgdG8gdXBkYXRlIHRoZSBsYXN0IGtub3duIHBvc2l0aW9uCj4g PkBAIC0yNzY1LDEwICsyNzY4LDYgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfcmluZ19j bGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQkJCXN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCwKPiA+ICAJCQkJCWV4ZWNsaXN0X2xpbmspOwo+ID4gIAkJ CWxpc3RfZGVsKCZzdWJtaXRfcmVxLT5leGVjbGlzdF9saW5rKTsKPiA+LQo+ID4tCQkJaWYgKHN1 Ym1pdF9yZXEtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gPi0JCQkJaW50ZWxfbHJf Y29udGV4dF91bnBpbihzdWJtaXRfcmVxKTsKPiA+LQo+ID4gIAkJCWk5MTVfZ2VtX3JlcXVlc3Rf dW5yZWZlcmVuY2Uoc3VibWl0X3JlcSk7Cj4gPiAgCQl9Cj4gPiAgCQlzcGluX3VubG9ja19pcnEo JnJpbmctPmV4ZWNsaXN0X2xvY2spOwo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID5pbmRl eCAwNjE4MGRjLi5iNGQ5YzhmIDEwMDY0NAo+ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID5A QCAtNTY2LDkgKzU2Niw2IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKmN1cnNvcjsKPiA+ICAJaW50IG51bV9lbGVtZW50cyA9IDA7Cj4gPi0JaWYg KHJlcXVlc3QtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gPi0JCWludGVsX2xyX2Nv bnRleHRfcGluKHJlcXVlc3QpOwo+ID4tCj4gPiAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNl KHJlcXVlc3QpOwo+ID4gIAlzcGluX2xvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKPiA+ QEAgLTczMiw2ICs3MjksMTMgQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1p dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gPiAgCWlmIChpbnRlbF9y aW5nX3N0b3BwZWQocmluZykpCj4gPiAgCQlyZXR1cm47Cj4gPisJaWYgKHJlcXVlc3QtPmN0eCAh PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiA+KwkJaWYgKCFyZXF1ZXN0LT5jdHgtPmVuZ2lu ZVtyaW5nLT5pZF0uZGlydHkpIHsKPiA+KwkJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3Qp Owo+ID4rCQkJcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0gdHJ1ZTsKPiA+ KwkJfQo+ID4rCX0KPiA+Kwo+ID4gIAlpZiAoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVudCkK PiA+ICAJCWk5MTVfZ3VjX3N1Ym1pdChkZXZfcHJpdi0+Z3VjLmV4ZWNidWZfY2xpZW50LCByZXF1 ZXN0KTsKPiA+ICAJZWxzZQo+ID5AQCAtOTU4LDEyICs5NjIsNiBAQCB2b2lkIGludGVsX2V4ZWNs aXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiA+ICAJ c3Bpbl91bmxvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKPiA+ICAJbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKHJlcSwgdG1wLCAmcmV0aXJlZF9saXN0LCBleGVjbGlzdF9saW5rKSB7Cj4g Pi0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEtPmN0eDsKPiA+LQkJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQo+ID4tCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlk XS5zdGF0ZTsKPiA+LQo+ID4tCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJpbmctPmRlZmF1bHRf Y29udGV4dCkpCj4gPi0JCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJlcSk7Cj4gPiAgCQlsaXN0 X2RlbCgmcmVxLT5leGVjbGlzdF9saW5rKTsKPiA+ICAJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZl cmVuY2UocmVxKTsKPiA+ICAJfQo+ID5AQCAtMTA1OCwyMSArMTA1NiwzOSBAQCByZXNldF9waW5f Y291bnQ6Cj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4tdm9pZCBpbnRlbF9scl9jb250ZXh0 X3VucGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gPitzdGF0aWMgdm9pZCBf X2ludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiA+ KwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiA+ICB7Cj4gPi0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyA9IHJxLT5yaW5nOwo+ID4tCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpjdHhfb2JqID0gcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPiA+LQlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+ID4tCj4gPisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3Rh dGU7Cj4gPisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVty aW5nLT5pZF0ucmluZ2J1ZjsKPiA+ICAJaWYgKGN0eF9vYmopIHsKPiA+ICAJCVdBUk5fT04oIW11 dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiA+LQkJaWYgKC0tcnEt PmN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+ID4rCQlpZiAoLS1jdHgt PmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50ID09IDApIHsKPiA+ICAJCQlpbnRlbF91bnBpbl9y aW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiA+ICAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKPiA+ICAJCX0KPiA+ICAJfQo+ID4gIH0KPiA+K3ZvaWQgaW50ZWxfbHJfY29u dGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ID4rewo+ID4rCV9f aW50ZWxfbHJfY29udGV4dF91bnBpbihycS0+cmluZywgcnEtPmN0eCk7Cj4gPit9Cj4gPisKPiA+ K3ZvaWQgaW50ZWxfbHJfY29udGV4dF9jb21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSkKPiA+K3sKPiA+KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0g cmVxLT5yaW5nOwo+ID4rCj4gPisJaWYgKHJpbmctPmxhc3RfY29udGV4dCAmJiByaW5nLT5sYXN0 X2NvbnRleHQgIT0gcmVxLT5jdHggJiYKPiA+KwkJCXJpbmctPmxhc3RfY29udGV4dC0+ZW5naW5l W3JpbmctPmlkXS5kaXJ0eSkgewo+ID4rCQlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oCj4gPisJ CQkJcmluZywKPiA+KwkJCQlyaW5nLT5sYXN0X2NvbnRleHQpOwo+ID4rCQlyaW5nLT5sYXN0X2Nv bnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsKPiA+Kwl9Cj4gPisJcmluZy0+ bGFzdF9jb250ZXh0ID0gcmVxLT5jdHg7Cj4gPit9Cj4gPisKPiA+ICBzdGF0aWMgaW50IGludGVs X2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQo+ID4gIHsKPiA+ICAJaW50IHJldCwgaTsKPiA+QEAgLTIzNjcsNiArMjM4Myw3NiBA QCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfbwo+ID4gIH0KPiA+ICAvKioKPiA+KyAqIGludGVsX2xy X2NvbnRleHRfY2xlYW5fcmluZygpIC0gY2xlYW4gdGhlIHJpbmcgc3BlY2lmaWMgcGFydHMgb2Yg YW4gTFJDCj4gPisgKiBAY3R4OiB0aGUgTFIgY29udGV4dCBiZWluZyBmcmVlZC4KPiA+KyAqIEBy aW5nOiB0aGUgZW5naW5lIGJlaW5nIGNsZWFuZWQKPiA+KyAqIEBjdHhfb2JqOiB0aGUgaHcgY29u dGV4dCBiZWluZyB1bnJlZmVyZW5jZWQKPiA+KyAqIEByaW5nYnVmOiB0aGUgcmluZ2J1ZiBiZWlu ZyBmcmVlZAo+ID4rICoKPiA+KyAqIFRha2UgY2FyZSBvZiBjbGVhbmluZyB1cCB0aGUgcGVyLWVu Z2luZSBiYWNraW5nCj4gPisgKiBvYmplY3RzIGFuZCB0aGUgbG9naWNhbCByaW5nYnVmZmVyLgo+ ID4rICovCj4gPitzdGF0aWMgdm9pZAo+ID4raW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gPisJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywKPiA+KwkJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwK PiA+KwkJCSAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiA+K3sKPiA+Kwlp bnQgcmV0Owo+ID4rCj4gPisJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0 cnVjdF9tdXRleCkpOwo+ID4rCj4gPisJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQp IHsKPiA+KwkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gPisJCWk5MTVf Z2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ID4rCX0KPiA+Kwo+ID4rCWlmIChjdHgt PmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsKPiA+KwkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEgPSBOVUxMOwo+ID4rCj4gPisJCS8qKgo+ID4rCQkgKiBJZiB0aGVyZSBpcyBhbHJl YWR5IGEgcmVxdWVzdCBwZW5kaW5nIG9uCj4gPisJCSAqIHRoaXMgcmluZywgd2FpdCBmb3IgdGhh dCB0byBjb21wbGV0ZSwKPiA+KwkJICogb3RoZXJ3aXNlIGNyZWF0ZSBhIHN3aXRjaCB0byBpZGxl IHJlcXVlc3QKPiA+KwkJICovCj4gPisJCWlmIChsaXN0X2VtcHR5KCZyaW5nLT5yZXF1ZXN0X2xp c3QpKSB7Cj4gPisJCQlpbnQgcmV0Owo+ID4rCj4gPisJCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKAo+ID4rCQkJCQlyaW5nLAo+ID4rCQkJCQlyaW5nLT5kZWZhdWx0X2NvbnRleHQsCj4g PisJCQkJCSZyZXEpOwo+ID4rCQkJaWYgKCFyZXQpCj4gPisJCQkJaTkxNV9hZGRfcmVxdWVzdChy ZXEpOwo+ID4rCQkJZWxzZQo+ID4rCQkJCURSTV9ERUJVRygiRmFpbGVkIHRvIGVuc3VyZSBjb250 ZXh0IHNhdmVkIik7Cj4gPisJCX0gZWxzZSB7Cj4gPisJCQlyZXEgPSBsaXN0X2ZpcnN0X2VudHJ5 KAo+ID4rCQkJCQkmcmluZy0+cmVxdWVzdF9saXN0LAo+ID4rCQkJCQl0eXBlb2YoKnJlcSksIGxp c3QpOwo+ID4rCQl9Cj4gPisJCWlmIChyZXEpIHsKPiA+KwkJCXJldCA9IGk5MTVfd2FpdF9yZXF1 ZXN0KHJlcSk7Cj4gPisJCQlpZiAocmV0ICE9IDApIHsKPiA+KwkJCQkvKioKPiA+KwkJCQkgKiBJ ZiB3ZSBnZXQgaGVyZSwgdGhlcmUncyBwcm9iYWJseSBiZWVuIGEgcmluZwo+ID4rCQkJCSAqIHJl c2V0LCBzbyB3ZSBqdXN0IGNsZWFuIHVwIHRoZSBkaXJ0eSBmbGFnLiYKPiA+KwkJCQkgKiBwaW4g Y291bnQuCj4gPisJCQkJICovCj4gPisJCQkJY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0g ZmFsc2U7Cj4gPisJCQkJX19pbnRlbF9scl9jb250ZXh0X3VucGluKAo+ID4rCQkJCQlyaW5nLAo+ ID4rCQkJCQljdHgpOwo+ID4rCQkJfQo+ID4rCQl9Cj4gPisJfQo+ID4rCj4gPisJV0FSTl9PTihj dHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiA+KwlpbnRlbF9yaW5nYnVmZmVyX2Zy ZWUocmluZ2J1Zik7Cj4gPisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJh c2UpOwo+ID4rfQo+ID4rCj4gPisvKioKPiA+ICAgKiBpbnRlbF9scl9jb250ZXh0X2ZyZWUoKSAt IGZyZWUgdGhlIExSQyBzcGVjaWZpYyBiaXRzIG9mIGEgY29udGV4dAo+ID4gICAqIEBjdHg6IHRo ZSBMUiBjb250ZXh0IHRvIGZyZWUuCj4gPiAgICoKPiA+QEAgLTIzNzgsNyArMjQ2NCw3IEBAIHZv aWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gPiAg ewo+ID4gIAlpbnQgaTsKPiA+LQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykg ewo+ID4rCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgKytpKSB7Cj4gPiAgCQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW2ldLnN0YXRlOwo+ ID4gIAkJaWYgKGN0eF9vYmopIHsKPiA+QEAgLTIzODYsMTMgKzI0NzIsMTAgQEAgdm9pZCBpbnRl bF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiA+ICAJCQkJCWN0 eC0+ZW5naW5lW2ldLnJpbmdidWY7Cj4gPiAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZyA9IHJpbmdidWYtPnJpbmc7Cj4gPi0JCQlpZiAoY3R4ID09IHJpbmctPmRlZmF1bHRfY29udGV4 dCkgewo+ID4tCQkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ID4tCQkJ CWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ID4tCQkJfQo+ID4tCQkJV0FS Tl9PTihjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiA+LQkJCWludGVsX3Jpbmdi dWZmZXJfZnJlZShyaW5nYnVmKTsKPiA+LQkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZj dHhfb2JqLT5iYXNlKTsKPiA+KwkJCWludGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZyhjdHgsCj4g PisJCQkJCQkgICAgcmluZywKPiA+KwkJCQkJCSAgICBjdHhfb2JqLAo+ID4rCQkJCQkJICAgIHJp bmdidWYpOwo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgfQo+ID5AQCAtMjU1NCw1ICsyNjM3LDEyIEBA IHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4g IAkJcmluZ2J1Zi0+aGVhZCA9IDA7Cj4gPiAgCQlyaW5nYnVmLT50YWlsID0gMDsKPiA+Kwo+ID4r CQlpZiAoY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5KSB7Cj4gPisJCQlfX2ludGVsX2xyX2Nv bnRleHRfdW5waW4oCj4gPisJCQkJCXJpbmcsCj4gPisJCQkJCWN0eCk7Cj4gPisJCQljdHgtPmVu Z2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsKPiA+KwkJfQo+ID4gIAl9Cj4gPiAgfQo+ID5k aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID5pbmRleCA0ZTYwZDU0Li5jYmM0MmI4IDEwMDY0NAo+ ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID4rKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID5AQCAtODYsNiArODYsNyBAQCB2b2lkIGludGVs X2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJCQlzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4KTsKPiA+ICB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rlc2Ny aXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiA+ICAJCQkJICAgICBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKTsKPiA+K3ZvaWQgaW50ZWxfbHJfY29udGV4dF9jb21wbGV0ZV9j aGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gPiAgLyogRXhlY2xpc3Rz ICovCj4gPiAgaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGVuYWJsZV9leGVjbGlzdHMpOwo+IAoKLS0gCkRhbmllbCBWZXR0ZXIK U29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNo Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==