From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915: Change context lifecycle Date: Wed, 25 Nov 2015 17:02:44 +0200 Message-ID: <877fl65dgr.fsf@gaia.fi.intel.com> References: <1448456237-31421-1-git-send-email-nicholas.hoath@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 5DFCC6EBD9 for ; Wed, 25 Nov 2015 07:04:17 -0800 (PST) In-Reply-To: <1448456237-31421-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 TmljayBIb2F0aCA8bmljaG9sYXMuaG9hdGhAaW50ZWwuY29tPiB3cml0ZXM6Cgo+IFVzZSB0aGUg Zmlyc3QgcmV0aXJlZCByZXF1ZXN0IG9uIGEgbmV3IGNvbnRleHQgdG8gdW5waW4KPiB0aGUgb2xk IGNvbnRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBodyBjb250ZXh0IHJlbWFpbnMKPiBib3Vu ZCB1bnRpbCBpdCBoYXMgYmVlbiB3cml0dGVuIGJhY2sgdG8gYnkgdGhlIEdQVS4KPiBOb3cgdGhh dCB0aGUgY29udGV4dCBpcyBwaW5uZWQgdW50aWwgbGF0ZXIgaW4gdGhlIHJlcXVlc3QvY29udGV4 dAo+IGxpZmVjeWNsZSwgaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIHBpbm5lZCBmcm9tIGNvbnRl eHRfcXVldWUgdG8KPiByZXRpcmVfcmVxdWVzdHMuCj4KPiB2MjogTW92ZWQgdGhlIG5ldyBwaW4g dG8gY292ZXIgR3VDIHN1Ym1pc3Npb24gKEFsZXggRGFpKQo+ICAgICBNb3ZlZCB0aGUgbmV3IHVu cGluIHRvIHJlcXVlc3RfcmV0aXJlIHRvIGZpeCBjb3ZlcmFnZSBsZWFrCj4gdjM6IEFkZGVkIHN3 aXRjaCB0byBkZWZhdWx0IGNvbnRleHQgaWYgZnJlZWluZyBhIHN0aWxsIHBpbm5lZAo+ICAgICBj b250ZXh0IGp1c3QgaW4gY2FzZSB0aGUgaHcgd2FzIGFjdHVhbGx5IHN0aWxsIHVzaW5nIGl0Cj4g djQ6IFVud3JhcHBlZCBjb250ZXh0IHVucGluIHRvIGFsbG93IGNhbGxpbmcgd2l0aG91dCBhIHJl cXVlc3QKPiB2NTogT25seSBjcmVhdGUgYSBzd2l0Y2ggdG8gaWRsZSBjb250ZXh0IGlmIHRoZSBy aW5nIGRvZXNuJ3QKPiAgICAgYWxyZWFkeSBoYXZlIGEgcmVxdWVzdCBwZW5kaW5nIG9uIGl0IChB bGV4IERhaSkKPiAgICAgUmVuYW1lIHVuc2F2ZWQgdG8gZGlydHkgdG8gYXZvaWQgZG91YmxlIG5l Z2F0aXZlcyAoRGF2ZSBHb3Jkb24pCj4gICAgIENoYW5nZWQgX25vX3JlcSBwb3N0Zml4IHRvIF9f IHByZWZpeCBmb3IgY29uc2lzdGVuY3kgKERhdmUgR29yZG9uKQo+ICAgICBTcGxpdCBvdXQgcGVy IGVuZ2luZSBjbGVhbnVwIGZyb20gY29udGV4dF9mcmVlIGFzIGl0Cj4gICAgIHdhcyBnZXR0aW5n IHVud2llbGR5Cj4gICAgIENvcnJlY3RlZCBsb2NraW5nIChEYXZlIEdvcmRvbikKPgo+IFNpZ25l ZC1vZmYtYnk6IE5pY2sgSG9hdGggPG5pY2hvbGFzLmhvYXRoQGludGVsLmNvbT4KPiBJc3N1ZTog VklaLTQyNzcKPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBD YzogRGF2aWQgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4gQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBBbGV4IERhaSA8eXUuZGFpQGlu dGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgfCAgIDEg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICB8ICAgMyArCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIHwgMTI0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCB8ICAgMSAr Cj4gIDQgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZDVjZjMwYi4uZTgyNzE3YSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04ODksNiArODg5LDcgQEAgc3RydWN0IGludGVs X2NvbnRleHQgewo+ICAJc3RydWN0IHsKPiAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq c3RhdGU7Cj4gIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7Cj4gKwkJYm9vbCBk aXJ0eTsKPiAgCQlpbnQgcGluX2NvdW50Owo+ICAJfSBlbmdpbmVbSTkxNV9OVU1fUklOR1NdOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBlOTU1NDk5Li4zODI5YmMxIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEzNTQsNiArMTM1NCw5IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCkKPiAgewo+ICAJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7 Cj4gIAo+ICsJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKPiArCQlpbnRlbF9scl9jb250ZXh0 X2NvbXBsZXRlX2NoZWNrKHJlcXVlc3QpOwo+ICsKPiAgCS8qIFdlIGtub3cgdGhlIEdQVSBtdXN0 IGhhdmUgcmVhZCB0aGUgcmVxdWVzdCB0byBoYXZlCj4gIAkgKiBzZW50IHVzIHRoZSBzZXFubyAr IGludGVycnVwdCwgc28gdXNlIHRoZSBwb3NpdGlvbgo+ICAJICogb2YgdGFpbCBvZiB0aGUgcmVx dWVzdCB0byB1cGRhdGUgdGhlIGxhc3Qga25vd24gcG9zaXRpb24KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IGluZGV4IDA2MTgwZGMuLjAzZDViY2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IEBAIC01NjYsOSArNTY2LDYgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4 dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmN1cnNvcjsKPiAgCWludCBudW1fZWxlbWVudHMgPSAwOwo+ ICAKPiAtCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KQo+IC0JCWlu dGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwo+IC0KPiAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVm ZXJlbmNlKHJlcXVlc3QpOwo+ICAKPiAgCXNwaW5fbG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0X2xv Y2spOwo+IEBAIC03MzIsNiArNzI5LDEzIEBAIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2Fu ZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAJaWYgKGlu dGVsX3Jpbmdfc3RvcHBlZChyaW5nKSkKPiAgCQlyZXR1cm47Cj4gIAo+ICsJaWYgKHJlcXVlc3Qt PmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiArCQlpZiAoIXJlcXVlc3QtPmN0eC0+ ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ICsJCQlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1 ZXN0KTsKPiArCQkJcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmRpcnR5ID0gdHJ1ZTsK PiArCQl9Cj4gKwl9Cj4gKwo+ICAJaWYgKGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQpCj4g IAkJaTkxNV9ndWNfc3VibWl0KGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQsIHJlcXVlc3Qp Owo+ICAJZWxzZQo+IEBAIC05NTgsMTIgKzk2Miw2IEBAIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3Jl dGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAJc3Bpbl91bmxv Y2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUocmVxLCB0bXAsICZyZXRpcmVkX2xpc3QsIGV4ZWNsaXN0X2xpbmspIHsKPiAtCQlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmogPQo+IC0JCQkJY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ IC0KPiAtCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkpCj4g LQkJCWludGVsX2xyX2NvbnRleHRfdW5waW4ocmVxKTsKPiAgCQlsaXN0X2RlbCgmcmVxLT5leGVj bGlzdF9saW5rKTsKPiAgCQlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcSk7Cj4gIAl9 Cj4gQEAgLTEwNTgsMjEgKzEwNTYsMzkgQEAgcmVzZXRfcGluX2NvdW50Ogo+ICAJcmV0dXJuIHJl dDsKPiAgfQo+ICAKPiAtdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcnEpCj4gK3N0YXRpYyB2b2lkIF9faW50ZWxfbHJfY29udGV4dF91bnBp bihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHgpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBycS0+cmluZzsK PiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gcnEtPmN0eC0+ZW5naW5l W3JpbmctPmlkXS5zdGF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0g cnEtPnJpbmdidWY7Cj4gLQo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmog PSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ICAJaWYgKGN0eF9v YmopIHsKPiAgCQlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211 dGV4KSk7Cj4gLQkJaWYgKC0tcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0g MCkgewo+ICsJCWlmICgtLWN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+ ICAJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAgCQkJaTkxNV9nZW1f b2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gIAkJfQo+ICAJfQo+ICB9Cj4gIAo+ICt2b2lk IGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkK PiArewo+ICsJX19pbnRlbF9scl9jb250ZXh0X3VucGluKHJxLT5yaW5nLCBycS0+Y3R4KTsKPiAr fQo+ICsKPiArdm9pZCBpbnRlbF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nID0gcmVxLT5yaW5nOwo+ICsKPiArCWlmIChyaW5nLT5sYXN0X2NvbnRleHQgJiYgcmluZy0+ bGFzdF9jb250ZXh0ICE9IHJlcS0+Y3R4ICYmCj4gKwkJCXJpbmctPmxhc3RfY29udGV4dC0+ZW5n aW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ICsJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKPiAr CQkJCXJpbmcsCj4gKwkJCQlyaW5nLT5sYXN0X2NvbnRleHQpOwo+ICsJCXJpbmctPmxhc3RfY29u dGV4dC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ICsJfQo+ICsJcmluZy0+bGFz dF9jb250ZXh0ID0gcmVxLT5jdHg7CgpXaGF0IGVuc3VyZXMgdGhhdCB0aGUgbGFzdF9jb250ZXh0 IHN0YXlzIGFsaXZlPwoKPiArfQo+ICsKPiAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdf d29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgewo+ ICAJaW50IHJldCwgaTsKPiBAQCAtMjM2Nyw2ICsyMzgzLDYyIEBAIHBvcHVsYXRlX2xyX2NvbnRl eHQoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KmN0eF9vCj4gIH0KPiAgCj4gIC8qKgo+ICsgKiBpbnRlbF9scl9jb250ZXh0X2NsZWFuX3Jpbmco KSAtIGNsZWFuIHRoZSByaW5nIHNwZWNpZmljIHBhcnRzIG9mIGFuIExSQwo+ICsgKiBAY3R4OiB0 aGUgTFIgY29udGV4dCBiZWluZyBmcmVlZC4KPiArICogQHJpbmc6IHRoZSBlbmdpbmUgYmVpbmcg Y2xlYW5lZAo+ICsgKiBAY3R4X29iajogdGhlIGh3IGNvbnRleHQgYmVpbmcgdW5yZWZlcmVuY2Vk Cj4gKyAqIEByaW5nYnVmOiB0aGUgcmluZ2J1ZiBiZWluZyBmcmVlZAo+ICsgKgo+ICsgKiBUYWtl IGNhcmUgb2YgY2xlYW5pbmcgdXAgdGhlIHBlci1lbmdpbmUgYmFja2luZwo+ICsgKiBvYmplY3Rz IGFuZCB0aGUgbG9naWNhbCByaW5nYnVmZmVyLgo+ICsgKi8KPiArc3RhdGljIHZvaWQKPiAraW50 ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gKwkJ CSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCQkgICAgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmN0eF9vYmosCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZikKPiArewo+ICsJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYt PnN0cnVjdF9tdXRleCkpOwo+ICsKPiArCWlmIChjdHggPT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0 KSB7Cj4gKwkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gKwkJaTkxNV9n ZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gKwl9Cj4gKwo+ICsJaWYgKGN0eC0+ZW5n aW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ICsJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxID0gTlVMTDsKPiArCj4gKwkJLyoqCj4gKwkJICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJl cXVlc3QgcGVuZGluZyBvbgo+ICsJCSAqIHRoaXMgcmluZywgd2FpdCBmb3IgdGhhdCB0byBjb21w bGV0ZSwKPiArCQkgKiBvdGhlcndpc2UgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgcmVxdWVzdAo+ ICsJCSAqLwo+ICsJCWlmIChsaXN0X2VtcHR5KCZyaW5nLT5yZXF1ZXN0X2xpc3QpKSB7Cj4gKwkJ CWludCByZXQ7Cj4gKwo+ICsJCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKAo+ICsJCQkJ CXJpbmcsCj4gKwkJCQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0LAo+ICsJCQkJCSZyZXEpOwo+ICsJ CQlpZiAoIXJldCkKPiArCQkJCWk5MTVfYWRkX3JlcXVlc3QocmVxKTsKPiArCQkJZWxzZQo+ICsJ CQkJRFJNX0RFQlVHKCJGYWlsZWQgdG8gZW5zdXJlIGNvbnRleHQgc2F2ZWQiKTsKPiArCQl9IGVs c2Ugewo+ICsJCQlyZXEgPSBsaXN0X2ZpcnN0X2VudHJ5KAo+ICsJCQkJCSZyaW5nLT5yZXF1ZXN0 X2xpc3QsCj4gKwkJCQkJdHlwZW9mKCpyZXEpLCBsaXN0KTsKPiArCQl9Cj4gKwkJaWYgKHJlcSkK PiArCQkJaTkxNV93YWl0X3JlcXVlc3QocmVxKTsKPiArCX0KPiArCj4gKwlXQVJOX09OKGN0eC0+ ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQpOwo+ICsJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJp bmdidWYpOwo+ICsJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ ICt9Cj4gKwo+ICsvKioKPiAgICogaW50ZWxfbHJfY29udGV4dF9mcmVlKCkgLSBmcmVlIHRoZSBM UkMgc3BlY2lmaWMgYml0cyBvZiBhIGNvbnRleHQKPiAgICogQGN0eDogdGhlIExSIGNvbnRleHQg dG8gZnJlZS4KPiAgICoKPiBAQCAtMjM3OCwyMSArMjQ1MCwxOCBAQCB2b2lkIGludGVsX2xyX2Nv bnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICB7Cj4gIAlpbnQgaTsKPiAg Cj4gLQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykgewo+ICsJZm9yIChpID0g MDsgaSA8IEk5MTVfTlVNX1JJTkdTOyArK2kpIHsKPiAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW2ldLnN0YXRlOwo+ICAKPiAtCQlpZiAoY3R4X29i aikgewo+ICsJCWlmIChjdHgtPmVuZ2luZVtpXS5zdGF0ZSkgewoKKytpIGFuZCB0aGUgYWJvdmUg YXJlIHN1cGVyZmxvdW91cz8KCi1NaWthCgo+ICAJCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiA9Cj4gIAkJCQkJY3R4LT5lbmdpbmVbaV0ucmluZ2J1ZjsKPiAgCQkJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7Cj4gIAo+IC0JCQlpZiAoY3R4ID09 IHJpbmctPmRlZmF1bHRfY29udGV4dCkgewo+IC0JCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9v YmoocmluZ2J1Zik7Cj4gLQkJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsK PiAtCQkJfQo+IC0JCQlXQVJOX09OKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQpOwo+ IC0JCQlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7Cj4gLQkJCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPiArCQkJaW50ZWxfbHJfY29udGV4dF9jbGVh bl9yaW5nKGN0eCwKPiArCQkJCQkJICAgIHJpbmcsCj4gKwkJCQkJCSAgICBjdHhfb2JqLAo+ICsJ CQkJCQkgICAgcmluZ2J1Zik7Cj4gIAkJfQo+ICAJfQo+ICB9Cj4gQEAgLTI1NTQsNSArMjYyMywx MiBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCj4gIAkJcmluZ2J1Zi0+aGVhZCA9IDA7Cj4gIAkJcmluZ2J1Zi0+dGFpbCA9IDA7Cj4gKwo+ ICsJCWlmIChjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsKPiArCQkJX19pbnRlbF9scl9j b250ZXh0X3VucGluKAo+ICsJCQkJCXJpbmcsCj4gKwkJCQkJY3R4KTsKPiArCQkJY3R4LT5lbmdp bmVbcmluZy0+aWRdLmRpcnR5ID0gZmFsc2U7Cj4gKwkJfQo+ICAJfQo+ICB9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmgKPiBpbmRleCA0ZTYwZDU0Li5jYmM0MmI4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmgKPiBAQCAtODYsNiArODYsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRf cmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJc3RydWN0IGludGVsX2NvbnRleHQg KmN0eCk7Cj4gIHVpbnQ2NF90IGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4LAo+ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KTsKPiArdm9pZCBpbnRlbF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKTsKPiAgCj4gIC8qIEV4ZWNsaXN0cyAqLwo+ICBpbnQgaW50ZWxf c2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5h YmxlX2V4ZWNsaXN0cyk7Cj4gLS0gCj4gMS45LjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==