From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Change context lifecycle Date: Thu, 26 Nov 2015 11:08:33 +0100 Message-ID: <20151126100833.GI17050@phenom.ffwll.local> References: <1448456237-31421-1-git-send-email-nicholas.hoath@intel.com> <877fl65dgr.fsf@gaia.fi.intel.com> <20151126084805.GD17050@phenom.ffwll.local> <5656CEB0.2070208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4D6567A13C for ; Thu, 26 Nov 2015 02:08:37 -0800 (PST) Received: by wmvv187 with SMTP id v187so23683028wmv.1 for ; Thu, 26 Nov 2015 02:08:36 -0800 (PST) Content-Disposition: inline In-Reply-To: <5656CEB0.2070208@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 Cc: "intel-gfx@lists.freedesktop.org" , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjYsIDIwMTUgYXQgMDk6MTk6NDRBTSArMDAwMCwgTmljayBIb2F0aCB3cm90 ZToKPiBPbiAyNi8xMS8yMDE1IDA4OjQ4LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID5PbiBXZWQs IE5vdiAyNSwgMjAxNSBhdCAwNTowMjo0NFBNICswMjAwLCBNaWthIEt1b3BwYWxhIHdyb3RlOgo+ ID4+TmljayBIb2F0aCA8bmljaG9sYXMuaG9hdGhAaW50ZWwuY29tPiB3cml0ZXM6Cj4gPj4KPiA+ Pj5Vc2UgdGhlIGZpcnN0IHJldGlyZWQgcmVxdWVzdCBvbiBhIG5ldyBjb250ZXh0IHRvIHVucGlu Cj4gPj4+dGhlIG9sZCBjb250ZXh0LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgaHcgY29udGV4dCBy ZW1haW5zCj4gPj4+Ym91bmQgdW50aWwgaXQgaGFzIGJlZW4gd3JpdHRlbiBiYWNrIHRvIGJ5IHRo ZSBHUFUuCj4gPj4+Tm93IHRoYXQgdGhlIGNvbnRleHQgaXMgcGlubmVkIHVudGlsIGxhdGVyIGlu IHRoZSByZXF1ZXN0L2NvbnRleHQKPiA+Pj5saWZlY3ljbGUsIGl0IG5vIGxvbmdlciBuZWVkcyB0 byBiZSBwaW5uZWQgZnJvbSBjb250ZXh0X3F1ZXVlIHRvCj4gPj4+cmV0aXJlX3JlcXVlc3RzLgo+ ID4+Pgo+ID4+PnYyOiBNb3ZlZCB0aGUgbmV3IHBpbiB0byBjb3ZlciBHdUMgc3VibWlzc2lvbiAo QWxleCBEYWkpCj4gPj4+ICAgICBNb3ZlZCB0aGUgbmV3IHVucGluIHRvIHJlcXVlc3RfcmV0aXJl IHRvIGZpeCBjb3ZlcmFnZSBsZWFrCj4gPj4+djM6IEFkZGVkIHN3aXRjaCB0byBkZWZhdWx0IGNv bnRleHQgaWYgZnJlZWluZyBhIHN0aWxsIHBpbm5lZAo+ID4+PiAgICAgY29udGV4dCBqdXN0IGlu IGNhc2UgdGhlIGh3IHdhcyBhY3R1YWxseSBzdGlsbCB1c2luZyBpdAo+ID4+PnY0OiBVbndyYXBw ZWQgY29udGV4dCB1bnBpbiB0byBhbGxvdyBjYWxsaW5nIHdpdGhvdXQgYSByZXF1ZXN0Cj4gPj4+ djU6IE9ubHkgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgY29udGV4dCBpZiB0aGUgcmluZyBkb2Vz bid0Cj4gPj4+ICAgICBhbHJlYWR5IGhhdmUgYSByZXF1ZXN0IHBlbmRpbmcgb24gaXQgKEFsZXgg RGFpKQo+ID4+PiAgICAgUmVuYW1lIHVuc2F2ZWQgdG8gZGlydHkgdG8gYXZvaWQgZG91YmxlIG5l Z2F0aXZlcyAoRGF2ZSBHb3Jkb24pCj4gPj4+ICAgICBDaGFuZ2VkIF9ub19yZXEgcG9zdGZpeCB0 byBfXyBwcmVmaXggZm9yIGNvbnNpc3RlbmN5IChEYXZlIEdvcmRvbikKPiA+Pj4gICAgIFNwbGl0 IG91dCBwZXIgZW5naW5lIGNsZWFudXAgZnJvbSBjb250ZXh0X2ZyZWUgYXMgaXQKPiA+Pj4gICAg IHdhcyBnZXR0aW5nIHVud2llbGR5Cj4gPj4+ICAgICBDb3JyZWN0ZWQgbG9ja2luZyAoRGF2ZSBH b3Jkb24pCj4gPj4+Cj4gPj4+U2lnbmVkLW9mZi1ieTogTmljayBIb2F0aCA8bmljaG9sYXMuaG9h dGhAaW50ZWwuY29tPgo+ID4+Pklzc3VlOiBWSVotNDI3Nwo+ID4+PkNjOiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4+PkNjOiBEYXZpZCBHb3Jkb24gPGRhdmlkLnMu Z29yZG9uQGludGVsLmNvbT4KPiA+Pj5DYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Cj4gPj4+Q2M6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+ID4+Pi0tLQo+ ID4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgfCAgIDEgKwo+ID4+PiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgfCAgIDMgKwo+ID4+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgfCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCB8ICAgMSAr Cj4gPj4+ICA0IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKPiA+Pj4KPiA+Pj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+Pj5pbmRleCBkNWNmMzBiLi5l ODI3MTdhIDEwMDY0NAo+ID4+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4+QEAgLTg4OSw2 ICs4ODksNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7Cj4gPj4+ICAJc3RydWN0IHsKPiA+Pj4g IAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwo+ID4+PiAgCQlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKPiA+Pj4rCQlib29sIGRpcnR5Owo+ID4+PiAgCQlpbnQg cGluX2NvdW50Owo+ID4+PiAgCX0gZW5naW5lW0k5MTVfTlVNX1JJTkdTXTsKPiA+Pj4KPiA+Pj5k aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+Pj5pbmRleCBlOTU1NDk5Li4zODI5YmMxIDEwMDY0NAo+ ID4+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+Pj4rKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPj4+QEAgLTEzNTQsNiArMTM1NCw5IEBAIHN0 YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKPiA+Pj4gIHsKPiA+Pj4gIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3Jl dGlyZShyZXF1ZXN0KTsKPiA+Pj4KPiA+Pj4rCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCj4g Pj4+KwkJaW50ZWxfbHJfY29udGV4dF9jb21wbGV0ZV9jaGVjayhyZXF1ZXN0KTsKPiA+Pj4rCj4g Pj4+ICAJLyogV2Uga25vdyB0aGUgR1BVIG11c3QgaGF2ZSByZWFkIHRoZSByZXF1ZXN0IHRvIGhh dmUKPiA+Pj4gIAkgKiBzZW50IHVzIHRoZSBzZXFubyArIGludGVycnVwdCwgc28gdXNlIHRoZSBw b3NpdGlvbgo+ID4+PiAgCSAqIG9mIHRhaWwgb2YgdGhlIHJlcXVlc3QgdG8gdXBkYXRlIHRoZSBs YXN0IGtub3duIHBvc2l0aW9uCj4gPj4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+Pj5pbmRl eCAwNjE4MGRjLi4wM2Q1YmNhIDEwMDY0NAo+ID4+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCj4gPj4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiA+Pj5AQCAtNTY2LDkgKzU2Niw2IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfcXVl dWUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ID4+PiAgCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yOwo+ID4+PiAgCWludCBudW1fZWxlbWVudHMgPSAw Owo+ID4+Pgo+ID4+Pi0JaWYgKHJlcXVlc3QtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQp Cj4gPj4+LQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdCk7Cj4gPj4+LQo+ID4+PiAgCWk5 MTVfZ2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+ID4+Pgo+ID4+PiAgCXNwaW5fbG9j a19pcnEoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwo+ID4+PkBAIC03MzIsNiArNzI5LDEzIEBAIGlu dGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0KQo+ID4+PiAgCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykpCj4g Pj4+ICAJCXJldHVybjsKPiA+Pj4KPiA+Pj4rCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVm YXVsdF9jb250ZXh0KSB7Cj4gPj4+KwkJaWYgKCFyZXF1ZXN0LT5jdHgtPmVuZ2luZVtyaW5nLT5p ZF0uZGlydHkpIHsKPiA+Pj4rCQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdCk7Cj4gPj4+ KwkJCXJlcXVlc3QtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IHRydWU7Cj4gPj4+KwkJ fQo+ID4+PisJfQo+ID4+PisKPiA+Pj4gIAlpZiAoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVu dCkKPiA+Pj4gIAkJaTkxNV9ndWNfc3VibWl0KGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQs IHJlcXVlc3QpOwo+ID4+PiAgCWVsc2UKPiA+Pj5AQCAtOTU4LDEyICs5NjIsNiBAQCB2b2lkIGlu dGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKPiA+Pj4gIAlzcGluX3VubG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwo+ID4+Pgo+ ID4+PiAgCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHRtcCwgJnJldGlyZWRfbGlzdCwg ZXhlY2xpc3RfbGluaykgewo+ID4+Pi0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEt PmN0eDsKPiA+Pj4tCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9Cj4gPj4+ LQkJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gPj4+LQo+ID4+Pi0JCWlmIChjdHhf b2JqICYmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSkKPiA+Pj4tCQkJaW50ZWxfbHJf Y29udGV4dF91bnBpbihyZXEpOwo+ID4+PiAgCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9saW5r KTsKPiA+Pj4gIAkJaTkxNV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ID4+PiAgCX0K PiA+Pj5AQCAtMTA1OCwyMSArMTA1NiwzOSBAQCByZXNldF9waW5fY291bnQ6Cj4gPj4+ICAJcmV0 dXJuIHJldDsKPiA+Pj4gIH0KPiA+Pj4KPiA+Pj4tdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGlu KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gPj4+K3N0YXRpYyB2b2lkIF9faW50 ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ID4+PisJ CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gPj4+ICB7Cj4gPj4+LQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nID0gcnEtPnJpbmc7Cj4gPj4+LQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gPj4+LQlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+ID4+Pi0KPiA+ Pj4rCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbcmlu Zy0+aWRdLnN0YXRlOwo+ID4+PisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBj dHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPiA+Pj4gIAlpZiAoY3R4X29iaikgewo+ID4+ PiAgCQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7 Cj4gPj4+LQkJaWYgKC0tcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkg ewo+ID4+PisJCWlmICgtLWN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+ ID4+PiAgCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gPj4+ICAJCQlp OTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiA+Pj4gIAkJfQo+ID4+PiAgCX0K PiA+Pj4gIH0KPiA+Pj4KPiA+Pj4rdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gPj4+K3sKPiA+Pj4rCV9faW50ZWxfbHJfY29udGV4 dF91bnBpbihycS0+cmluZywgcnEtPmN0eCk7Cj4gPj4+K30KPiA+Pj4rCj4gPj4+K3ZvaWQgaW50 ZWxfbHJfY29udGV4dF9jb21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKPiA+Pj4rewo+ID4+PisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+ cmluZzsKPiA+Pj4rCj4gPj4+KwlpZiAocmluZy0+bGFzdF9jb250ZXh0ICYmIHJpbmctPmxhc3Rf Y29udGV4dCAhPSByZXEtPmN0eCAmJgo+ID4+PisJCQlyaW5nLT5sYXN0X2NvbnRleHQtPmVuZ2lu ZVtyaW5nLT5pZF0uZGlydHkpIHsKPiA+Pj4rCQlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oCj4g Pj4+KwkJCQlyaW5nLAo+ID4+PisJCQkJcmluZy0+bGFzdF9jb250ZXh0KTsKPiA+Pj4rCQlyaW5n LT5sYXN0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsKPiA+Pj4rCX0K PiA+Pj4rCXJpbmctPmxhc3RfY29udGV4dCA9IHJlcS0+Y3R4Owo+ID4+Cj4gPj5XaGF0IGVuc3Vy ZXMgdGhhdCB0aGUgbGFzdF9jb250ZXh0IHN0YXlzIGFsaXZlPwo+ID4KPiA+VGhlIG90aGVyIHBh cnQgdGhhdCdzIG1pc3NpbmcgY29tcGFyZWQgdG8gdGhlIGxlZ2FjeSBjb250ZXh0IGN5Y2xpbmcg bG9naWMKPiA+aXMgbW92ZV90b19hY3RpdmUuIFdpdGhvdXQgdGhhdCB0aGUgc2hyaW5rZXIgY2Fu J3QgZWF0IGludG8gcmV0aXJlZAo+ID5jb250ZXh0cywgd2hpY2ggcmVuZGVycyB0aGlzIGV4ZXJj aXNlIGZhaXJseSBtb290IGltby4KPiA+Cj4gPlRoZSBvdmVyYWxsIGlkZWEgaXMgdGhhdCBzaW5j ZSBpOTE1IGRvZXMgZHluYW1pYyBtZW1vcnkgbWFuYWdlbWVudCwgYW5kCj4gPnRoYXQgaW5mZWN0 cyBldmVyeXRoaW5nIGluIHRoZSBjb2RlIHRoYXQgZGVhbHMgd2l0aCBncHUgb2JqZWN0cywgd2Ug bmVlZAo+ID50byBtYWtlIHN1cmUgdGhhdCBldmVyeW9uZSBpcyB1c2luZyB0aGUgc2FtZSBsb2dp Y3kgdG8gY3ljbGUgdGhyb3VnaAo+ID5hY3RpdmUgb2JqZWN0cy4gT3RoZXJ3aXNlIHRoZSBzaHJp bmtlciB3aWxsIGJlIGFuIHVubWFpbnRhaW5hYmxlIGh5ZHJhCj4gPndpdGggcGVyLWZlYXR1cmUg c3BlY2lhbCBjYXNlcy4KPiA+LURhbmllbAo+IAo+IFRoaXMgaXMgdGhlIGZpcnN0IHBhcnQgb2Yg dGhlIFZJWi00Mjc3IGZpeCBjaGFuZ2VzZXQgdGhhdCBJJ20gd29ya2luZyBvbi4gSXQKPiBoYXMg YmVlbiAnZmFzdHRyYWNrZWQnIGFzIGl0IGlzIG5lZWRlZCB0byBmaXggYSBsb2NrdXAgd2l0aCBH dUMgc3VibWlzc2lvbi4KPiBJZiB5b3UgbGlrZSwgSSBjYW4gdXBkYXRlIHRoZSBjb21taXQgbWVz c2FnZSB0byBleHBsYWluIHRoYXQ/CgpZZWFoIGlmIHRoaXMgaXMgYSBtaW5pbWFsIGJ1Z2ZpeCBm b3Igc29tZSBpc3N1ZSB0aGVuIHRoaXMgZGVmaW5pdGVseQpzaG91bGQgYmUgbWVudGlvbmVkIGlu IHRoZSBjb21taXQgbWVzc2FnZSwgaW5jbHVkaW5nIGEgcHJlY2lzZSBkZXNjcmlwdGlvbgpvZiB3 aGF0IGFuZCBob3cgZXhhY3RseSB0aGUgY3VycmVudCBjb2RlIGJsb3dzIHVwLgotRGFuaWVsCgo+ IAo+ID4KPiA+Pgo+ID4+Pit9Cj4gPj4+Kwo+ID4+PiAgc3RhdGljIGludCBpbnRlbF9sb2dpY2Fs X3Jpbmdfd29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK PiA+Pj4gIHsKPiA+Pj4gIAlpbnQgcmV0LCBpOwo+ID4+PkBAIC0yMzY3LDYgKzIzODMsNjIgQEAg cG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqY3R4X28KPiA+Pj4gIH0KPiA+Pj4KPiA+Pj4gIC8qKgo+ID4+Pisg KiBpbnRlbF9scl9jb250ZXh0X2NsZWFuX3JpbmcoKSAtIGNsZWFuIHRoZSByaW5nIHNwZWNpZmlj IHBhcnRzIG9mIGFuIExSQwo+ID4+PisgKiBAY3R4OiB0aGUgTFIgY29udGV4dCBiZWluZyBmcmVl ZC4KPiA+Pj4rICogQHJpbmc6IHRoZSBlbmdpbmUgYmVpbmcgY2xlYW5lZAo+ID4+PisgKiBAY3R4 X29iajogdGhlIGh3IGNvbnRleHQgYmVpbmcgdW5yZWZlcmVuY2VkCj4gPj4+KyAqIEByaW5nYnVm OiB0aGUgcmluZ2J1ZiBiZWluZyBmcmVlZAo+ID4+PisgKgo+ID4+PisgKiBUYWtlIGNhcmUgb2Yg Y2xlYW5pbmcgdXAgdGhlIHBlci1lbmdpbmUgYmFja2luZwo+ID4+PisgKiBvYmplY3RzIGFuZCB0 aGUgbG9naWNhbCByaW5nYnVmZmVyLgo+ID4+PisgKi8KPiA+Pj4rc3RhdGljIHZvaWQKPiA+Pj4r aW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4g Pj4+KwkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ID4+PisJCQkgICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmosCj4gPj4+KwkJCSAgICBzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiA+Pj4rewo+ID4+PisJV0FSTl9PTighbXV0ZXhfaXNf bG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ID4+PisKPiA+Pj4rCWlmIChjdHgg PT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gPj4+KwkJaW50ZWxfdW5waW5fcmluZ2J1ZmZl cl9vYmoocmluZ2J1Zik7Cj4gPj4+KwkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29i aik7Cj4gPj4+Kwl9Cj4gPj4+Kwo+ID4+PisJaWYgKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0 eSkgewo+ID4+PisJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0gTlVMTDsKPiA+ Pj4rCj4gPj4+KwkJLyoqCj4gPj4+KwkJICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJlcXVlc3Qg cGVuZGluZyBvbgo+ID4+PisJCSAqIHRoaXMgcmluZywgd2FpdCBmb3IgdGhhdCB0byBjb21wbGV0 ZSwKPiA+Pj4rCQkgKiBvdGhlcndpc2UgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgcmVxdWVzdAo+ ID4+PisJCSAqLwo+ID4+PisJCWlmIChsaXN0X2VtcHR5KCZyaW5nLT5yZXF1ZXN0X2xpc3QpKSB7 Cj4gPj4+KwkJCWludCByZXQ7Cj4gPj4+Kwo+ID4+PisJCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKAo+ID4+PisJCQkJCXJpbmcsCj4gPj4+KwkJCQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0 LAo+ID4+PisJCQkJCSZyZXEpOwo+ID4+PisJCQlpZiAoIXJldCkKPiA+Pj4rCQkJCWk5MTVfYWRk X3JlcXVlc3QocmVxKTsKPiA+Pj4rCQkJZWxzZQo+ID4+PisJCQkJRFJNX0RFQlVHKCJGYWlsZWQg dG8gZW5zdXJlIGNvbnRleHQgc2F2ZWQiKTsKPiA+Pj4rCQl9IGVsc2Ugewo+ID4+PisJCQlyZXEg PSBsaXN0X2ZpcnN0X2VudHJ5KAo+ID4+PisJCQkJCSZyaW5nLT5yZXF1ZXN0X2xpc3QsCj4gPj4+ KwkJCQkJdHlwZW9mKCpyZXEpLCBsaXN0KTsKPiA+Pj4rCQl9Cj4gPj4+KwkJaWYgKHJlcSkKPiA+ Pj4rCQkJaTkxNV93YWl0X3JlcXVlc3QocmVxKTsKPiA+Pj4rCX0KPiA+Pj4rCj4gPj4+KwlXQVJO X09OKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQpOwo+ID4+PisJaW50ZWxfcmluZ2J1 ZmZlcl9mcmVlKHJpbmdidWYpOwo+ID4+PisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0 eF9vYmotPmJhc2UpOwo+ID4+Pit9Cj4gPj4+Kwo+ID4+PisvKioKPiA+Pj4gICAqIGludGVsX2xy X2NvbnRleHRfZnJlZSgpIC0gZnJlZSB0aGUgTFJDIHNwZWNpZmljIGJpdHMgb2YgYSBjb250ZXh0 Cj4gPj4+ICAgKiBAY3R4OiB0aGUgTFIgY29udGV4dCB0byBmcmVlLgo+ID4+PiAgICoKPiA+Pj5A QCAtMjM3OCwyMSArMjQ1MCwxOCBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4KQo+ID4+PiAgewo+ID4+PiAgCWludCBpOwo+ID4+Pgo+ID4+Pi0J Zm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiA+Pj4rCWZvciAoaSA9IDA7 IGkgPCBJOTE1X05VTV9SSU5HUzsgKytpKSB7Cj4gPj4+ICAJCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbaV0uc3RhdGU7Cj4gPj4+Cj4gPj4+LQkJaWYg KGN0eF9vYmopIHsKPiA+Pj4rCQlpZiAoY3R4LT5lbmdpbmVbaV0uc3RhdGUpIHsKPiA+Pgo+ID4+ KytpIGFuZCB0aGUgYWJvdmUgYXJlIHN1cGVyZmxvdW91cz8KPiA+Pgo+ID4+LU1pa2EKPiA+Pgo+ ID4+PiAgCQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQo+ID4+PiAgCQkJCQlj dHgtPmVuZ2luZVtpXS5yaW5nYnVmOwo+ID4+PiAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZyA9IHJpbmdidWYtPnJpbmc7Cj4gPj4+Cj4gPj4+LQkJCWlmIChjdHggPT0gcmluZy0+ZGVm YXVsdF9jb250ZXh0KSB7Cj4gPj4+LQkJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5n YnVmKTsKPiA+Pj4tCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ID4+ Pi0JCQl9Cj4gPj4+LQkJCVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCk7 Cj4gPj4+LQkJCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nYnVmKTsKPiA+Pj4tCQkJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ID4+PisJCQlpbnRlbF9scl9j b250ZXh0X2NsZWFuX3JpbmcoY3R4LAo+ID4+PisJCQkJCQkgICAgcmluZywKPiA+Pj4rCQkJCQkJ ICAgIGN0eF9vYmosCj4gPj4+KwkJCQkJCSAgICByaW5nYnVmKTsKPiA+Pj4gIAkJfQo+ID4+PiAg CX0KPiA+Pj4gIH0KPiA+Pj5AQCAtMjU1NCw1ICsyNjIzLDEyIEBAIHZvaWQgaW50ZWxfbHJfY29u dGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+Pgo+ID4+PiAgCQlyaW5nYnVm LT5oZWFkID0gMDsKPiA+Pj4gIAkJcmluZ2J1Zi0+dGFpbCA9IDA7Cj4gPj4+Kwo+ID4+PisJCWlm IChjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsKPiA+Pj4rCQkJX19pbnRlbF9scl9jb250 ZXh0X3VucGluKAo+ID4+PisJCQkJCXJpbmcsCj4gPj4+KwkJCQkJY3R4KTsKPiA+Pj4rCQkJY3R4 LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0gZmFsc2U7Cj4gPj4+KwkJfQo+ID4+PiAgCX0KPiA+ Pj4gIH0KPiA+Pj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID4+PmluZGV4IDRlNjBkNTQuLmNi YzQyYjggMTAwNjQ0Cj4gPj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgK PiA+Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ID4+PkBAIC04Niw2 ICs4Niw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4+PiAgCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7Cj4gPj4+ICB1aW50NjRf dCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK PiA+Pj4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ID4+Pit2b2lk IGludGVsX2xyX2NvbnRleHRfY29tcGxldGVfY2hlY2soc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpOwo+ID4+Pgo+ID4+PiAgLyogRXhlY2xpc3RzICovCj4gPj4+ICBpbnQgaW50ZWxf c2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5h YmxlX2V4ZWNsaXN0cyk7Cj4gPj4+LS0KPiA+Pj4xLjkuMQo+ID4+Pgo+ID4+Pl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+SW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+ID4+PkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj5odHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPj5fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+SW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+ID4+SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+aHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4K PiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=