From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH] drm/i915: Change context lifecycle Date: Wed, 25 Nov 2015 10:34:40 -0800 Message-ID: <5655FF40.2010406@intel.com> References: <1448456237-31421-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 2BDF16E768 for ; Wed, 25 Nov 2015 10:37:20 -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 T0ssIGhlcmUgaXMgbXkgdW5kZXJzdGFuZGluZy4gV2UgZG8gY29udGV4dCBwaW4vdW5waW4gZHVy aW5nIGNyZWF0ZS9mcmVlIApyZXF1ZXN0IG9yIGR1cmluZyBzdWJtaXQvcmV0aXJlIHJlcXVlc3Qg YnV0IHdpdGggY29uZGl0aW9uIChkaXJ0eSkgCmNoZWNrLiBTbyB0aGUgY29udGV4dCBwaW5jb3Vu dCB3aWxsIGJlICMgb2YgcmVxdWVzdHMgcGx1cyAxLCBpZiBpdCBpcyAKZGlydHkuIERpcnR5IG1l YW5zIHRoYXQgY29udGV4dCBsaWtlbHkgaXMgYWNjZXNzZWQgYnkgSFcsIHdoaWxlIApub3QtZGly dHkgbWVhbnMgSFcgaXMgbm90IGFjY2Vzc2luZyB0aGUgbHJjIGF0IHRoYXQgbW9tZW50LiBUaGlz IGV4dHJhIApwaW5jb3VudCB3aWxsIGJlIGhlbGQgdW50aWwgd2UgcmVjZWl2ZSByZXRpcmUgb2Yg cmVxdWVzdCBmcm9tIGEgCmRpZmZlcmVudCBjb250ZXh0LgoKVGhlIHN3aXRjaCB0byBpZGxlIGNv bnRleHQgYW5kIHdhaXQgbG9va3MgZ29vZCB0byBtZSB0b28uIEkgdGVzdGVkIGl0IApvdXQgYW5k IGl0IGZpeGVzIHRoZSBoYW5nIGlzc3VlIHdoZW4gR3VDIGlzIGVuYWJsZWQuCgpSZXZpZXdlZC1i eTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGFua3MsCkFsZXgKCk9uIDExLzI1LzIw MTUgMDQ6NTcgQU0sIE5pY2sgSG9hdGggd3JvdGU6Cj4gVXNlIHRoZSBmaXJzdCByZXRpcmVkIHJl cXVlc3Qgb24gYSBuZXcgY29udGV4dCB0byB1bnBpbgo+IHRoZSBvbGQgY29udGV4dC4gVGhpcyBl bnN1cmVzIHRoYXQgdGhlIGh3IGNvbnRleHQgcmVtYWlucwo+IGJvdW5kIHVudGlsIGl0IGhhcyBi ZWVuIHdyaXR0ZW4gYmFjayB0byBieSB0aGUgR1BVLgo+IE5vdyB0aGF0IHRoZSBjb250ZXh0IGlz IHBpbm5lZCB1bnRpbCBsYXRlciBpbiB0aGUgcmVxdWVzdC9jb250ZXh0Cj4gbGlmZWN5Y2xlLCBp dCBubyBsb25nZXIgbmVlZHMgdG8gYmUgcGlubmVkIGZyb20gY29udGV4dF9xdWV1ZSB0bwo+IHJl dGlyZV9yZXF1ZXN0cy4KPgo+IHYyOiBNb3ZlZCB0aGUgbmV3IHBpbiB0byBjb3ZlciBHdUMgc3Vi bWlzc2lvbiAoQWxleCBEYWkpCj4gICAgICBNb3ZlZCB0aGUgbmV3IHVucGluIHRvIHJlcXVlc3Rf cmV0aXJlIHRvIGZpeCBjb3ZlcmFnZSBsZWFrCj4gdjM6IEFkZGVkIHN3aXRjaCB0byBkZWZhdWx0 IGNvbnRleHQgaWYgZnJlZWluZyBhIHN0aWxsIHBpbm5lZAo+ICAgICAgY29udGV4dCBqdXN0IGlu IGNhc2UgdGhlIGh3IHdhcyBhY3R1YWxseSBzdGlsbCB1c2luZyBpdAo+IHY0OiBVbndyYXBwZWQg Y29udGV4dCB1bnBpbiB0byBhbGxvdyBjYWxsaW5nIHdpdGhvdXQgYSByZXF1ZXN0Cj4gdjU6IE9u bHkgY3JlYXRlIGEgc3dpdGNoIHRvIGlkbGUgY29udGV4dCBpZiB0aGUgcmluZyBkb2Vzbid0Cj4g ICAgICBhbHJlYWR5IGhhdmUgYSByZXF1ZXN0IHBlbmRpbmcgb24gaXQgKEFsZXggRGFpKQo+ICAg ICAgUmVuYW1lIHVuc2F2ZWQgdG8gZGlydHkgdG8gYXZvaWQgZG91YmxlIG5lZ2F0aXZlcyAoRGF2 ZSBHb3Jkb24pCj4gICAgICBDaGFuZ2VkIF9ub19yZXEgcG9zdGZpeCB0byBfXyBwcmVmaXggZm9y IGNvbnNpc3RlbmN5IChEYXZlIEdvcmRvbikKPiAgICAgIFNwbGl0IG91dCBwZXIgZW5naW5lIGNs ZWFudXAgZnJvbSBjb250ZXh0X2ZyZWUgYXMgaXQKPiAgICAgIHdhcyBnZXR0aW5nIHVud2llbGR5 Cj4gICAgICBDb3JyZWN0ZWQgbG9ja2luZyAoRGF2ZSBHb3Jkb24pCj4KPiBTaWduZWQtb2ZmLWJ5 OiBOaWNrIEhvYXRoIDxuaWNob2xhcy5ob2F0aEBpbnRlbC5jb20+Cj4gSXNzdWU6IFZJWi00Mjc3 Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IERhdmlk IEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+ Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAgMSArCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICB8ICAgMyArCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyB8IDEyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIHwgICAxICsKPiAg IDQgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZDVjZjMwYi4uZTgyNzE3YSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04ODksNiArODg5LDcgQEAgc3RydWN0IGludGVsX2Nv bnRleHQgewo+ICAgCXN0cnVjdCB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpz dGF0ZTsKPiAgIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7Cj4gKwkJYm9vbCBk aXJ0eTsKPiAgIAkJaW50IHBpbl9jb3VudDsKPiAgIAl9IGVuZ2luZVtJOTE1X05VTV9SSU5HU107 Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBlOTU1NDk5Li4zODI5YmMxIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTEzNTQsNiArMTM1NCw5IEBAIHN0YXRp YyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCkKPiAgIHsKPiAgIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShyZXF1 ZXN0KTsKPiAgIAo+ICsJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykKPiArCQlpbnRlbF9scl9j b250ZXh0X2NvbXBsZXRlX2NoZWNrKHJlcXVlc3QpOwo+ICsKPiAgIAkvKiBXZSBrbm93IHRoZSBH UFUgbXVzdCBoYXZlIHJlYWQgdGhlIHJlcXVlc3QgdG8gaGF2ZQo+ICAgCSAqIHNlbnQgdXMgdGhl IHNlcW5vICsgaW50ZXJydXB0LCBzbyB1c2UgdGhlIHBvc2l0aW9uCj4gICAJICogb2YgdGFpbCBv ZiB0aGUgcmVxdWVzdCB0byB1cGRhdGUgdGhlIGxhc3Qga25vd24gcG9zaXRpb24KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDA2MTgwZGMuLjAzZDViY2EgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwo+IEBAIC01NjYsOSArNTY2LDYgQEAgc3RhdGljIGludCBleGVjbGlz dHNfY29udGV4dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4g ICAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpjdXJzb3I7Cj4gICAJaW50IG51bV9lbGVt ZW50cyA9IDA7Cj4gICAKPiAtCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250 ZXh0KQo+IC0JCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwo+IC0KPiAgIAlpOTE1X2dl bV9yZXF1ZXN0X3JlZmVyZW5jZShyZXF1ZXN0KTsKPiAgIAo+ICAgCXNwaW5fbG9ja19pcnEoJnJp bmctPmV4ZWNsaXN0X2xvY2spOwo+IEBAIC03MzIsNiArNzI5LDEzIEBAIGludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQo+ICAgCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykpCj4gICAJCXJldHVybjsKPiAg IAo+ICsJaWYgKHJlcXVlc3QtPmN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiArCQlp ZiAoIXJlcXVlc3QtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ICsJCQlpbnRlbF9s cl9jb250ZXh0X3BpbihyZXF1ZXN0KTsKPiArCQkJcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+ aWRdLmRpcnR5ID0gdHJ1ZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICAgCWlmIChkZXZfcHJpdi0+Z3Vj LmV4ZWNidWZfY2xpZW50KQo+ICAgCQlpOTE1X2d1Y19zdWJtaXQoZGV2X3ByaXYtPmd1Yy5leGVj YnVmX2NsaWVudCwgcmVxdWVzdCk7Cj4gICAJZWxzZQo+IEBAIC05NTgsMTIgKzk2Miw2IEBAIHZv aWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKQo+ICAgCXNwaW5fdW5sb2NrX2lycSgmcmluZy0+ZXhlY2xpc3RfbG9jayk7Cj4gICAK PiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmVxLCB0bXAsICZyZXRpcmVkX2xpc3QsIGV4 ZWNsaXN0X2xpbmspIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7 Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQo+IC0JCQkJY3R4LT5l bmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+IC0KPiAtCQlpZiAoY3R4X29iaiAmJiAoY3R4ICE9IHJp bmctPmRlZmF1bHRfY29udGV4dCkpCj4gLQkJCWludGVsX2xyX2NvbnRleHRfdW5waW4ocmVxKTsK PiAgIAkJbGlzdF9kZWwoJnJlcS0+ZXhlY2xpc3RfbGluayk7Cj4gICAJCWk5MTVfZ2VtX3JlcXVl c3RfdW5yZWZlcmVuY2UocmVxKTsKPiAgIAl9Cj4gQEAgLTEwNTgsMjEgKzEwNTYsMzkgQEAgcmVz ZXRfcGluX2NvdW50Ogo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gICAKPiAtdm9pZCBpbnRlbF9s cl9jb250ZXh0X3VucGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gK3N0YXRp YyB2b2lkIF9faW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nID0gcnEtPnJpbmc7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gLQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+IC0KPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0 YXRlOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVty aW5nLT5pZF0ucmluZ2J1ZjsKPiAgIAlpZiAoY3R4X29iaikgewo+ICAgCQlXQVJOX09OKCFtdXRl eF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7Cj4gLQkJaWYgKC0tcnEtPmN0 eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+ICsJCWlmICgtLWN0eC0+ZW5n aW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+ICAgCQkJaW50ZWxfdW5waW5fcmluZ2J1 ZmZlcl9vYmoocmluZ2J1Zik7Cj4gICAJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhf b2JqKTsKPiAgIAkJfQo+ICAgCX0KPiAgIH0KPiAgIAo+ICt2b2lkIGludGVsX2xyX2NvbnRleHRf dW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiArewo+ICsJX19pbnRlbF9s cl9jb250ZXh0X3VucGluKHJxLT5yaW5nLCBycS0+Y3R4KTsKPiArfQo+ICsKPiArdm9pZCBpbnRl bF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ ICsKPiArCWlmIChyaW5nLT5sYXN0X2NvbnRleHQgJiYgcmluZy0+bGFzdF9jb250ZXh0ICE9IHJl cS0+Y3R4ICYmCj4gKwkJCXJpbmctPmxhc3RfY29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0 eSkgewo+ICsJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKPiArCQkJCXJpbmcsCj4gKwkJCQly aW5nLT5sYXN0X2NvbnRleHQpOwo+ICsJCXJpbmctPmxhc3RfY29udGV4dC0+ZW5naW5lW3Jpbmct PmlkXS5kaXJ0eSA9IGZhbHNlOwo+ICsJfQo+ICsJcmluZy0+bGFzdF9jb250ZXh0ID0gcmVxLT5j dHg7Cj4gK30KPiArCj4gICBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5k c19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+ICAgCWludCBy ZXQsIGk7Cj4gQEAgLTIzNjcsNiArMjM4Myw2MiBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfbwo+ ICAgfQo+ICAgCj4gICAvKioKPiArICogaW50ZWxfbHJfY29udGV4dF9jbGVhbl9yaW5nKCkgLSBj bGVhbiB0aGUgcmluZyBzcGVjaWZpYyBwYXJ0cyBvZiBhbiBMUkMKPiArICogQGN0eDogdGhlIExS IGNvbnRleHQgYmVpbmcgZnJlZWQuCj4gKyAqIEByaW5nOiB0aGUgZW5naW5lIGJlaW5nIGNsZWFu ZWQKPiArICogQGN0eF9vYmo6IHRoZSBodyBjb250ZXh0IGJlaW5nIHVucmVmZXJlbmNlZAo+ICsg KiBAcmluZ2J1ZjogdGhlIHJpbmdidWYgYmVpbmcgZnJlZWQKPiArICoKPiArICogVGFrZSBjYXJl IG9mIGNsZWFuaW5nIHVwIHRoZSBwZXItZW5naW5lIGJhY2tpbmcKPiArICogb2JqZWN0cyBhbmQg dGhlIGxvZ2ljYWwgcmluZ2J1ZmZlci4KPiArICovCj4gK3N0YXRpYyB2b2lkCj4gK2ludGVsX2xy X2NvbnRleHRfY2xlYW5fcmluZyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICsJCQkgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJICAgIHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqLAo+ICsJCQkgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYpCj4gK3sKPiArCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1 Y3RfbXV0ZXgpKTsKPiArCj4gKwlpZiAoY3R4ID09IHJpbmctPmRlZmF1bHRfY29udGV4dCkgewo+ ICsJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ICsJCWk5MTVfZ2VtX29i amVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICsJfQo+ICsKPiArCWlmIChjdHgtPmVuZ2luZVty aW5nLT5pZF0uZGlydHkpIHsKPiArCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9 IE5VTEw7Cj4gKwo+ICsJCS8qKgo+ICsJCSAqIElmIHRoZXJlIGlzIGFscmVhZHkgYSByZXF1ZXN0 IHBlbmRpbmcgb24KPiArCQkgKiB0aGlzIHJpbmcsIHdhaXQgZm9yIHRoYXQgdG8gY29tcGxldGUs Cj4gKwkJICogb3RoZXJ3aXNlIGNyZWF0ZSBhIHN3aXRjaCB0byBpZGxlIHJlcXVlc3QKPiArCQkg Ki8KPiArCQlpZiAobGlzdF9lbXB0eSgmcmluZy0+cmVxdWVzdF9saXN0KSkgewo+ICsJCQlpbnQg cmV0Owo+ICsKPiArCQkJcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYygKPiArCQkJCQlyaW5n LAo+ICsJCQkJCXJpbmctPmRlZmF1bHRfY29udGV4dCwKPiArCQkJCQkmcmVxKTsKPiArCQkJaWYg KCFyZXQpCj4gKwkJCQlpOTE1X2FkZF9yZXF1ZXN0KHJlcSk7Cj4gKwkJCWVsc2UKPiArCQkJCURS TV9ERUJVRygiRmFpbGVkIHRvIGVuc3VyZSBjb250ZXh0IHNhdmVkIik7Cj4gKwkJfSBlbHNlIHsK PiArCQkJcmVxID0gbGlzdF9maXJzdF9lbnRyeSgKPiArCQkJCQkmcmluZy0+cmVxdWVzdF9saXN0 LAo+ICsJCQkJCXR5cGVvZigqcmVxKSwgbGlzdCk7Cj4gKwkJfQo+ICsJCWlmIChyZXEpCj4gKwkJ CWk5MTVfd2FpdF9yZXF1ZXN0KHJlcSk7Cj4gKwl9Cj4gKwo+ICsJV0FSTl9PTihjdHgtPmVuZ2lu ZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiArCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nYnVm KTsKPiArCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPiArfQo+ ICsKPiArLyoqCj4gICAgKiBpbnRlbF9scl9jb250ZXh0X2ZyZWUoKSAtIGZyZWUgdGhlIExSQyBz cGVjaWZpYyBiaXRzIG9mIGEgY29udGV4dAo+ICAgICogQGN0eDogdGhlIExSIGNvbnRleHQgdG8g ZnJlZS4KPiAgICAqCj4gQEAgLTIzNzgsMjEgKzI0NTAsMTggQEAgdm9pZCBpbnRlbF9scl9jb250 ZXh0X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAgIHsKPiAgIAlpbnQgaTsKPiAg IAo+IC0JZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiArCWZvciAoaSA9 IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgKytpKSB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbaV0uc3RhdGU7Cj4gICAKPiAtCQlpZiAoY3R4 X29iaikgewo+ICsJCWlmIChjdHgtPmVuZ2luZVtpXS5zdGF0ZSkgewo+ICAgCQkJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQo+ICAgCQkJCQljdHgtPmVuZ2luZVtpXS5yaW5nYnVm Owo+ICAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7Cj4g ICAKPiAtCQkJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiAtCQkJCWludGVs X3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+IC0JCQkJaTkxNV9nZW1fb2JqZWN0X2dn dHRfdW5waW4oY3R4X29iaik7Cj4gLQkJCX0KPiAtCQkJV0FSTl9PTihjdHgtPmVuZ2luZVtyaW5n LT5pZF0ucGluX2NvdW50KTsKPiAtCQkJaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHJpbmdidWYpOwo+ IC0JCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7Cj4gKwkJCWlu dGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZyhjdHgsCj4gKwkJCQkJCSAgICByaW5nLAo+ICsJCQkJ CQkgICAgY3R4X29iaiwKPiArCQkJCQkJICAgIHJpbmdidWYpOwo+ICAgCQl9Cj4gICAJfQo+ICAg fQo+IEBAIC0yNTU0LDUgKzI2MjMsMTIgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAKPiAgIAkJcmluZ2J1Zi0+aGVhZCA9IDA7Cj4gICAJ CXJpbmdidWYtPnRhaWwgPSAwOwo+ICsKPiArCQlpZiAoY3R4LT5lbmdpbmVbcmluZy0+aWRdLmRp cnR5KSB7Cj4gKwkJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKPiArCQkJCQlyaW5nLAo+ICsJ CQkJCWN0eCk7Cj4gKwkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ICsJ CX0KPiAgIAl9Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBpbmRleCA0ZTYwZDU0 Li5jYmM0MmI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBAQCAtODYsNiArODYs NyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgIAkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+ICAgdWludDY0X3QgaW50ZWxfbHJf Y29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gICAJCQkJICAg ICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiArdm9pZCBpbnRlbF9scl9jb250ZXh0 X2NvbXBsZXRlX2NoZWNrKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiAgIAo+ ICAgLyogRXhlY2xpc3RzICovCj4gICBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0 cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxlX2V4ZWNsaXN0cyk7CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=