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 09:48:05 +0100 Message-ID: <20151126084805.GD17050@phenom.ffwll.local> References: <1448456237-31421-1-git-send-email-nicholas.hoath@intel.com> <877fl65dgr.fsf@gaia.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by gabe.freedesktop.org (Postfix) with ESMTPS id 81C936E5C5 for ; Thu, 26 Nov 2015 00:48:09 -0800 (PST) Received: by wmvv187 with SMTP id v187so20478213wmv.1 for ; Thu, 26 Nov 2015 00:48:07 -0800 (PST) Content-Disposition: inline In-Reply-To: <877fl65dgr.fsf@gaia.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMjUsIDIwMTUgYXQgMDU6MDI6NDRQTSArMDIwMCwgTWlrYSBLdW9wcGFsYSB3 cm90ZToKPiBOaWNrIEhvYXRoIDxuaWNob2xhcy5ob2F0aEBpbnRlbC5jb20+IHdyaXRlczoKPiAK PiA+IFVzZSB0aGUgZmlyc3QgcmV0aXJlZCByZXF1ZXN0IG9uIGEgbmV3IGNvbnRleHQgdG8gdW5w aW4KPiA+IHRoZSBvbGQgY29udGV4dC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGh3IGNvbnRleHQg cmVtYWlucwo+ID4gYm91bmQgdW50aWwgaXQgaGFzIGJlZW4gd3JpdHRlbiBiYWNrIHRvIGJ5IHRo ZSBHUFUuCj4gPiBOb3cgdGhhdCB0aGUgY29udGV4dCBpcyBwaW5uZWQgdW50aWwgbGF0ZXIgaW4g dGhlIHJlcXVlc3QvY29udGV4dAo+ID4gbGlmZWN5Y2xlLCBpdCBubyBsb25nZXIgbmVlZHMgdG8g YmUgcGlubmVkIGZyb20gY29udGV4dF9xdWV1ZSB0bwo+ID4gcmV0aXJlX3JlcXVlc3RzLgo+ID4K PiA+IHYyOiBNb3ZlZCB0aGUgbmV3IHBpbiB0byBjb3ZlciBHdUMgc3VibWlzc2lvbiAoQWxleCBE YWkpCj4gPiAgICAgTW92ZWQgdGhlIG5ldyB1bnBpbiB0byByZXF1ZXN0X3JldGlyZSB0byBmaXgg Y292ZXJhZ2UgbGVhawo+ID4gdjM6IEFkZGVkIHN3aXRjaCB0byBkZWZhdWx0IGNvbnRleHQgaWYg ZnJlZWluZyBhIHN0aWxsIHBpbm5lZAo+ID4gICAgIGNvbnRleHQganVzdCBpbiBjYXNlIHRoZSBo dyB3YXMgYWN0dWFsbHkgc3RpbGwgdXNpbmcgaXQKPiA+IHY0OiBVbndyYXBwZWQgY29udGV4dCB1 bnBpbiB0byBhbGxvdyBjYWxsaW5nIHdpdGhvdXQgYSByZXF1ZXN0Cj4gPiB2NTogT25seSBjcmVh dGUgYSBzd2l0Y2ggdG8gaWRsZSBjb250ZXh0IGlmIHRoZSByaW5nIGRvZXNuJ3QKPiA+ICAgICBh bHJlYWR5IGhhdmUgYSByZXF1ZXN0IHBlbmRpbmcgb24gaXQgKEFsZXggRGFpKQo+ID4gICAgIFJl bmFtZSB1bnNhdmVkIHRvIGRpcnR5IHRvIGF2b2lkIGRvdWJsZSBuZWdhdGl2ZXMgKERhdmUgR29y ZG9uKQo+ID4gICAgIENoYW5nZWQgX25vX3JlcSBwb3N0Zml4IHRvIF9fIHByZWZpeCBmb3IgY29u c2lzdGVuY3kgKERhdmUgR29yZG9uKQo+ID4gICAgIFNwbGl0IG91dCBwZXIgZW5naW5lIGNsZWFu dXAgZnJvbSBjb250ZXh0X2ZyZWUgYXMgaXQKPiA+ICAgICB3YXMgZ2V0dGluZyB1bndpZWxkeQo+ ID4gICAgIENvcnJlY3RlZCBsb2NraW5nIChEYXZlIEdvcmRvbikKPiA+Cj4gPiBTaWduZWQtb2Zm LWJ5OiBOaWNrIEhvYXRoIDxuaWNob2xhcy5ob2F0aEBpbnRlbC5jb20+Cj4gPiBJc3N1ZTogVkla LTQyNzcKPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4g Q2M6IERhdmlkIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+ID4gQ2M6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gQ2M6IEFsZXggRGFpIDx5dS5k YWlAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgfCAgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgIHwgICAzICsK PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDEyNCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaCB8ICAgMSArCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCBk NWNmMzBiLi5lODI3MTdhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gQEAg LTg4OSw2ICs4ODksNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7Cj4gPiAgCXN0cnVjdCB7Cj4g PiAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7Cj4gPiAgCQlzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKPiA+ICsJCWJvb2wgZGlydHk7Cj4gPiAgCQlpbnQgcGlu X2NvdW50Owo+ID4gIAl9IGVuZ2luZVtJOTE1X05VTV9SSU5HU107Cj4gPiAgCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiA+IGluZGV4IGU5NTU0OTkuLjM4MjliYzEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gPiBAQCAtMTM1NCw2ICsxMzU0LDkgQEAgc3RhdGljIHZvaWQg aTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQo+ID4gIHsKPiA+ICAJdHJhY2VfaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7 Cj4gPiAgCj4gPiArCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCj4gPiArCQlpbnRlbF9scl9j b250ZXh0X2NvbXBsZXRlX2NoZWNrKHJlcXVlc3QpOwo+ID4gKwo+ID4gIAkvKiBXZSBrbm93IHRo ZSBHUFUgbXVzdCBoYXZlIHJlYWQgdGhlIHJlcXVlc3QgdG8gaGF2ZQo+ID4gIAkgKiBzZW50IHVz IHRoZSBzZXFubyArIGludGVycnVwdCwgc28gdXNlIHRoZSBwb3NpdGlvbgo+ID4gIAkgKiBvZiB0 YWlsIG9mIHRoZSByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbGFzdCBrbm93biBwb3NpdGlvbgo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+IGluZGV4IDA2MTgwZGMuLjAzZDViY2EgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+IEBAIC01NjYsOSArNTY2LDYgQEAgc3Rh dGljIGludCBleGVjbGlzdHNfY29udGV4dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3QpCj4gPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yOwo+ ID4gIAlpbnQgbnVtX2VsZW1lbnRzID0gMDsKPiA+ICAKPiA+IC0JaWYgKHJlcXVlc3QtPmN0eCAh PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gPiAtCQlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1 ZXN0KTsKPiA+IC0KPiA+ICAJaTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2UocmVxdWVzdCk7Cj4g PiAgCj4gPiAgCXNwaW5fbG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwo+ID4gQEAgLTcz Miw2ICs3MjksMTMgQEAgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gPiAgCWlmIChpbnRlbF9yaW5nX3N0 b3BwZWQocmluZykpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiArCWlmIChyZXF1ZXN0LT5jdHgg IT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gPiArCQlpZiAoIXJlcXVlc3QtPmN0eC0+ZW5n aW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ID4gKwkJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVl c3QpOwo+ID4gKwkJCXJlcXVlc3QtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IHRydWU7 Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ICAJaWYgKGRldl9wcml2LT5ndWMuZXhlY2J1Zl9j bGllbnQpCj4gPiAgCQlpOTE1X2d1Y19zdWJtaXQoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVu dCwgcmVxdWVzdCk7Cj4gPiAgCWVsc2UKPiA+IEBAIC05NTgsMTIgKzk2Miw2IEBAIHZvaWQgaW50 ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQo+ID4gIAlzcGluX3VubG9ja19pcnEoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwo+ID4gIAo+ID4g IAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCB0bXAsICZyZXRpcmVkX2xpc3QsIGV4ZWNs aXN0X2xpbmspIHsKPiA+IC0JCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSByZXEtPmN0eDsK PiA+IC0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPiA+IC0JCQkJY3R4 LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ID4gLQo+ID4gLQkJaWYgKGN0eF9vYmogJiYgKGN0 eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpKQo+ID4gLQkJCWludGVsX2xyX2NvbnRleHRfdW5w aW4ocmVxKTsKPiA+ICAJCWxpc3RfZGVsKCZyZXEtPmV4ZWNsaXN0X2xpbmspOwo+ID4gIAkJaTkx NV9nZW1fcmVxdWVzdF91bnJlZmVyZW5jZShyZXEpOwo+ID4gIAl9Cj4gPiBAQCAtMTA1OCwyMSAr MTA1NiwzOSBAQCByZXNldF9waW5fY291bnQ6Cj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4g IAo+ID4gLXZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJxKQo+ID4gK3N0YXRpYyB2b2lkIF9faW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ID4gKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0 eCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBycS0+cmluZzsK PiA+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBycS0+Y3R4LT5lbmdp bmVbcmluZy0+aWRdLnN0YXRlOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZiA9IHJxLT5yaW5nYnVmOwo+ID4gLQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Y3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPiA+ICsJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPiA+ ICAJaWYgKGN0eF9vYmopIHsKPiA+ICAJCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiA+IC0JCWlmICgtLXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5p ZF0ucGluX2NvdW50ID09IDApIHsKPiA+ICsJCWlmICgtLWN0eC0+ZW5naW5lW3JpbmctPmlkXS5w aW5fY291bnQgPT0gMCkgewo+ID4gIAkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdi dWYpOwo+ID4gIAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ID4gIAkJ fQo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gK3ZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ID4gK3sKPiA+ICsJX19pbnRlbF9scl9j b250ZXh0X3VucGluKHJxLT5yaW5nLCBycS0+Y3R4KTsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBp bnRlbF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQo+ID4gK3sKPiA+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+ cmluZzsKPiA+ICsKPiA+ICsJaWYgKHJpbmctPmxhc3RfY29udGV4dCAmJiByaW5nLT5sYXN0X2Nv bnRleHQgIT0gcmVxLT5jdHggJiYKPiA+ICsJCQlyaW5nLT5sYXN0X2NvbnRleHQtPmVuZ2luZVty aW5nLT5pZF0uZGlydHkpIHsKPiA+ICsJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKPiA+ICsJ CQkJcmluZywKPiA+ICsJCQkJcmluZy0+bGFzdF9jb250ZXh0KTsKPiA+ICsJCXJpbmctPmxhc3Rf Y29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ID4gKwl9Cj4gPiArCXJp bmctPmxhc3RfY29udGV4dCA9IHJlcS0+Y3R4Owo+IAo+IFdoYXQgZW5zdXJlcyB0aGF0IHRoZSBs YXN0X2NvbnRleHQgc3RheXMgYWxpdmU/CgpUaGUgb3RoZXIgcGFydCB0aGF0J3MgbWlzc2luZyBj b21wYXJlZCB0byB0aGUgbGVnYWN5IGNvbnRleHQgY3ljbGluZyBsb2dpYwppcyBtb3ZlX3RvX2Fj dGl2ZS4gV2l0aG91dCB0aGF0IHRoZSBzaHJpbmtlciBjYW4ndCBlYXQgaW50byByZXRpcmVkCmNv bnRleHRzLCB3aGljaCByZW5kZXJzIHRoaXMgZXhlcmNpc2UgZmFpcmx5IG1vb3QgaW1vLgoKVGhl IG92ZXJhbGwgaWRlYSBpcyB0aGF0IHNpbmNlIGk5MTUgZG9lcyBkeW5hbWljIG1lbW9yeSBtYW5h Z2VtZW50LCBhbmQKdGhhdCBpbmZlY3RzIGV2ZXJ5dGhpbmcgaW4gdGhlIGNvZGUgdGhhdCBkZWFs cyB3aXRoIGdwdSBvYmplY3RzLCB3ZSBuZWVkCnRvIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5b25lIGlz IHVzaW5nIHRoZSBzYW1lIGxvZ2ljeSB0byBjeWNsZSB0aHJvdWdoCmFjdGl2ZSBvYmplY3RzLiBP dGhlcndpc2UgdGhlIHNocmlua2VyIHdpbGwgYmUgYW4gdW5tYWludGFpbmFibGUgaHlkcmEKd2l0 aCBwZXItZmVhdHVyZSBzcGVjaWFsIGNhc2VzLgotRGFuaWVsCgo+IAo+ID4gK30KPiA+ICsKPiA+ ICBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ID4gIHsKPiA+ICAJaW50IHJldCwgaTsKPiA+IEBA IC0yMzY3LDYgKzIzODMsNjIgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X28KPiA+ICB9Cj4gPiAg Cj4gPiAgLyoqCj4gPiArICogaW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKCkgLSBjbGVhbiB0 aGUgcmluZyBzcGVjaWZpYyBwYXJ0cyBvZiBhbiBMUkMKPiA+ICsgKiBAY3R4OiB0aGUgTFIgY29u dGV4dCBiZWluZyBmcmVlZC4KPiA+ICsgKiBAcmluZzogdGhlIGVuZ2luZSBiZWluZyBjbGVhbmVk Cj4gPiArICogQGN0eF9vYmo6IHRoZSBodyBjb250ZXh0IGJlaW5nIHVucmVmZXJlbmNlZAo+ID4g KyAqIEByaW5nYnVmOiB0aGUgcmluZ2J1ZiBiZWluZyBmcmVlZAo+ID4gKyAqCj4gPiArICogVGFr ZSBjYXJlIG9mIGNsZWFuaW5nIHVwIHRoZSBwZXItZW5naW5lIGJhY2tpbmcKPiA+ICsgKiBvYmpl Y3RzIGFuZCB0aGUgbG9naWNhbCByaW5nYnVmZmVyLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyB2b2lk Cj4gPiAraW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj dHgsCj4gPiArCQkJICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gPiArCQkJICAg IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAo+ID4gKwkJCSAgICBzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiA+ICt7Cj4gPiArCVdBUk5fT04oIW11dGV4X2lz X2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiA+ICsKPiA+ICsJaWYgKGN0eCA9 PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiA+ICsJCWludGVsX3VucGluX3JpbmdidWZmZXJf b2JqKHJpbmdidWYpOwo+ID4gKwkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7 Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ ID4gKwkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEgPSBOVUxMOwo+ID4gKwo+ID4g KwkJLyoqCj4gPiArCQkgKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgcmVxdWVzdCBwZW5kaW5nIG9u Cj4gPiArCQkgKiB0aGlzIHJpbmcsIHdhaXQgZm9yIHRoYXQgdG8gY29tcGxldGUsCj4gPiArCQkg KiBvdGhlcndpc2UgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgcmVxdWVzdAo+ID4gKwkJICovCj4g PiArCQlpZiAobGlzdF9lbXB0eSgmcmluZy0+cmVxdWVzdF9saXN0KSkgewo+ID4gKwkJCWludCBy ZXQ7Cj4gPiArCj4gPiArCQkJcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYygKPiA+ICsJCQkJ CXJpbmcsCj4gPiArCQkJCQlyaW5nLT5kZWZhdWx0X2NvbnRleHQsCj4gPiArCQkJCQkmcmVxKTsK PiA+ICsJCQlpZiAoIXJldCkKPiA+ICsJCQkJaTkxNV9hZGRfcmVxdWVzdChyZXEpOwo+ID4gKwkJ CWVsc2UKPiA+ICsJCQkJRFJNX0RFQlVHKCJGYWlsZWQgdG8gZW5zdXJlIGNvbnRleHQgc2F2ZWQi KTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJcmVxID0gbGlzdF9maXJzdF9lbnRyeSgKPiA+ICsJ CQkJCSZyaW5nLT5yZXF1ZXN0X2xpc3QsCj4gPiArCQkJCQl0eXBlb2YoKnJlcSksIGxpc3QpOwo+ ID4gKwkJfQo+ID4gKwkJaWYgKHJlcSkKPiA+ICsJCQlpOTE1X3dhaXRfcmVxdWVzdChyZXEpOwo+ ID4gKwl9Cj4gPiArCj4gPiArCVdBUk5fT04oY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3Vu dCk7Cj4gPiArCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nYnVmKTsKPiA+ICsJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ID4gK30KPiA+ICsKPiA+ICsvKioK PiA+ICAgKiBpbnRlbF9scl9jb250ZXh0X2ZyZWUoKSAtIGZyZWUgdGhlIExSQyBzcGVjaWZpYyBi aXRzIG9mIGEgY29udGV4dAo+ID4gICAqIEBjdHg6IHRoZSBMUiBjb250ZXh0IHRvIGZyZWUuCj4g PiAgICoKPiA+IEBAIC0yMzc4LDIxICsyNDUwLDE4IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9m cmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gPiAgewo+ID4gIAlpbnQgaTsKPiA+ICAK PiA+IC0JZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiA+ICsJZm9yIChp ID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyArK2kpIHsKPiA+ICAJCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbaV0uc3RhdGU7Cj4gPiAgCj4gPiAtCQlp ZiAoY3R4X29iaikgewo+ID4gKwkJaWYgKGN0eC0+ZW5naW5lW2ldLnN0YXRlKSB7Cj4gCj4gKytp IGFuZCB0aGUgYWJvdmUgYXJlIHN1cGVyZmxvdW91cz8KPiAKPiAtTWlrYQo+IAo+ID4gIAkJCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0KPiA+ICAJCQkJCWN0eC0+ZW5naW5lW2ld LnJpbmdidWY7Cj4gPiAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYt PnJpbmc7Cj4gPiAgCj4gPiAtCQkJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsK PiA+IC0JCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gPiAtCQkJCWk5 MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ID4gLQkJCX0KPiA+IC0JCQlXQVJO X09OKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQpOwo+ID4gLQkJCWludGVsX3Jpbmdi dWZmZXJfZnJlZShyaW5nYnVmKTsKPiA+IC0JCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm Y3R4X29iai0+YmFzZSk7Cj4gPiArCQkJaW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKGN0eCwK PiA+ICsJCQkJCQkgICAgcmluZywKPiA+ICsJCQkJCQkgICAgY3R4X29iaiwKPiA+ICsJCQkJCQkg ICAgcmluZ2J1Zik7Cj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICB9Cj4gPiBAQCAtMjU1NCw1ICsyNjIz LDEyIEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ID4gIAo+ID4gIAkJcmluZ2J1Zi0+aGVhZCA9IDA7Cj4gPiAgCQlyaW5nYnVmLT50YWlsID0g MDsKPiA+ICsKPiA+ICsJCWlmIChjdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsKPiA+ICsJ CQlfX2ludGVsX2xyX2NvbnRleHRfdW5waW4oCj4gPiArCQkJCQlyaW5nLAo+ID4gKwkJCQkJY3R4 KTsKPiA+ICsJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkgPSBmYWxzZTsKPiA+ICsJCX0K PiA+ICAJfQo+ID4gIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gPiBpbmRleCA0ZTYw ZDU0Li5jYmM0MmI4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gPiBAQCAt ODYsNiArODYsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiA+ICAJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPiA+ICB1aW50NjRf dCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK PiA+ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiA+ICt2b2lkIGlu dGVsX2xyX2NvbnRleHRfY29tcGxldGVfY2hlY2soc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpOwo+ID4gIAo+ID4gIC8qIEV4ZWNsaXN0cyAqLwo+ID4gIGludCBpbnRlbF9zYW5pdGl6 ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVfZXhl Y2xpc3RzKTsKPiA+IC0tIAo+ID4gMS45LjEKPiA+Cj4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK