From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 14/40] drm/i915: Combine multiple internal plists into the same i915_priolist bucket Date: Mon, 24 Sep 2018 11:25:37 +0100 Message-ID: <1dd9f561-d12f-8bd6-f617-e50524e1ca4c@linux.intel.com> References: <20180919195544.1511-1-chris@chris-wilson.co.uk> <20180919195544.1511-14-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3C9756E070 for ; Mon, 24 Sep 2018 10:25:40 +0000 (UTC) In-Reply-To: <20180919195544.1511-14-chris@chris-wilson.co.uk> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE5LzA5LzIwMTggMjA6NTUsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBcyB3ZSBhcmUgYWJv dXQgdG8gYWxsb3cgb3Vyc2VsdmVzIHRvIHNsaWdodGx5IGJ1bXAgdGhlIHVzZXIgcHJpb3JpdHkK PiBpbnRvIGEgZmV3IGRpZmZlcmVudCBzdWJsZXZlbHMsIHBhY2t0aG9zZSBpbnRlcm5hbCBwcmlv cml0eSBsaXN0cwo+IGludG8gdGhlIHNhbWUgaTkxNV9wcmlvbGlzdCB0byBrZWVwIHRoZSByYnRy ZWUgY29tcGFjdCBhbmQgYXZvaWQgaGF2aW5nCj4gdG8gYWxsb2NhdGUgdGhlIGRlZmF1bHQgdXNl ciBwcmlvcml0eSBldmVuIGFmdGVyIHRoZSBpbnRlcm5hbCBidW1waW5nLgo+IFRoZSBkb3duc2lk ZSB0byBoYXZpbmcgYW4gcmVxdWVzdHNbXSByYXRoZXIgdGhhbiBhIG5vZGUgcGVyIGFjdGl2ZSBs aXN0LAo+IGlzIHRoYXQgd2UgdGhlbiBoYXZlIHRvIHdhbGsgb3ZlciB0aGUgZW1wdHkgaGlnaGVy IHByaW9yaXR5IGxpc3RzLiBUbwo+IGNvbXBlbnNhdGUsIHdlIHRyYWNrIHRoZSBhY3RpdmUgYnVj a2V0cyBhbmQgdXNlIGEgc21hbGwgYml0bWFwIHRvIHNraXAKPiBvdmVyIGFueSBpbmFjdGl2ZSBv bmVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMg ICAgICB8ICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lv bi5jIHwgMTIgKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAg ICAgIHwgODcgKysrKysrKysrKysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmggICAgIHwgMTMgKystCj4gICA0IGZpbGVzIGNoYW5nZWQsIDgwIGlu c2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCj4gaW5kZXggMjE3ZWQzZWUxY2FiLi44M2YyZjc3NzRjMWYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+IEBAIC0xNTM0LDEwICsxNTM0LDEw IEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAo+ICAgCWNvdW50ID0gMDsKPiAgIAlkcm1fcHJpbnRmKG0sICJcdFx0UXVldWUgcHJpb3JpdHk6 ICVkXG4iLCBleGVjbGlzdHMtPnF1ZXVlX3ByaW9yaXR5KTsKPiAgIAlmb3IgKHJiID0gcmJfZmly c3RfY2FjaGVkKCZleGVjbGlzdHMtPnF1ZXVlKTsgcmI7IHJiID0gcmJfbmV4dChyYikpIHsKPiAt CQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9Cj4gLQkJCXJiX2VudHJ5KHJiLCB0eXBlb2YoKnAp LCBub2RlKTsKPiArCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHJiX2VudHJ5KHJiLCB0eXBl b2YoKnApLCBub2RlKTsKPiArCQlpbnQgaTsKPiAgIAo+IC0JCWxpc3RfZm9yX2VhY2hfZW50cnko cnEsICZwLT5yZXF1ZXN0cywgc2NoZWQubGluaykgewo+ICsJCXByaW9saXN0X2Zvcl9lYWNoX3Jl cXVlc3QocnEsIHAsIGkpIHsKPiAgIAkJCWlmIChjb3VudCsrIDwgTUFYX1JFUVVFU1RTX1RPX1NI T1cgLSAxKQo+ICAgCQkJCXByaW50X3JlcXVlc3QobSwgcnEsICJcdFx0USAiKTsKPiAgIAkJCWVs c2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRl eCA2ZjY5M2VmNjJjNjQuLjg1MzFiZDkxN2VjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC03MjYsMzAgKzcyNiwyOCBAQCBzdGF0aWMg Ym9vbCBfX2d1Y19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAl3 aGlsZSAoKHJiID0gcmJfZmlyc3RfY2FjaGVkKCZleGVjbGlzdHMtPnF1ZXVlKSkpIHsKPiAgIAkJ c3RydWN0IGk5MTVfcHJpb2xpc3QgKnAgPSB0b19wcmlvbGlzdChyYik7Cj4gICAJCXN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxLCAqcm47Cj4gKwkJaW50IGk7Cj4gICAKPiAtCQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUocnEsIHJuLCAmcC0+cmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKPiArCQlwcmlv bGlzdF9mb3JfZWFjaF9yZXF1ZXN0X2NvbnN1bWUocnEsIHJuLCBwLCBpKSB7CgpIbSBjb25zdW1l ZCBjbGVhcnMgdGhlIGJpdG1hc2sgZXZlcnkgdGltZSwgYnV0IHdlIGFyZSBub3QgY2VydGFpbiB5 ZXQgd2UgCndpbGwgY29uc3VtZSB0aGUgcmVxdWVzdC4KCj4gICAJCQlpZiAobGFzdCAmJiBycS0+ aHdfY29udGV4dCAhPSBsYXN0LT5od19jb250ZXh0KSB7Cj4gLQkJCQlpZiAocG9ydCA9PSBsYXN0 X3BvcnQpIHsKPiAtCQkJCQlfX2xpc3RfZGVsX21hbnkoJnAtPnJlcXVlc3RzLAo+IC0JCQkJCQkJ JnJxLT5zY2hlZC5saW5rKTsKPiArCQkJCWlmIChwb3J0ID09IGxhc3RfcG9ydCkKPiAgIAkJCQkJ Z290byBkb25lOwo+IC0JCQkJfQo+ICAgCj4gICAJCQkJaWYgKHN1Ym1pdCkKPiAgIAkJCQkJcG9y dF9hc3NpZ24ocG9ydCwgbGFzdCk7Cj4gICAJCQkJcG9ydCsrOwo+ICAgCQkJfQo+ICAgCj4gLQkJ CUlOSVRfTElTVF9IRUFEKCZycS0+c2NoZWQubGluayk7Cj4gKwkJCWxpc3RfZGVsX2luaXQoJnJx LT5zY2hlZC5saW5rKTsKPiAgIAo+ICAgCQkJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJxKTsKPiAg IAkJCXRyYWNlX2k5MTVfcmVxdWVzdF9pbihycSwgcG9ydF9pbmRleChwb3J0LCBleGVjbGlzdHMp KTsKPiArCj4gICAJCQlsYXN0ID0gcnE7Cj4gICAJCQlzdWJtaXQgPSB0cnVlOwo+ICAgCQl9Cj4g ICAKPiAgIAkJcmJfZXJhc2VfY2FjaGVkKCZwLT5ub2RlLCAmZXhlY2xpc3RzLT5xdWV1ZSk7Cj4g LQkJSU5JVF9MSVNUX0hFQUQoJnAtPnJlcXVlc3RzKTsKPiAgIAkJaWYgKHAtPnByaW9yaXR5ICE9 IEk5MTVfUFJJT1JJVFlfTk9STUFMKQo+ICAgCQkJa21lbV9jYWNoZV9mcmVlKGVuZ2luZS0+aTkx NS0+cHJpb3JpdGllcywgcCk7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5k ZXggZThkZTI1MGMzNDEzLi5hZWFlODJiNTIyM2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYwo+IEBAIC0yNTksMTQgKzI1OSw0OSBAQCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Jf dXBkYXRlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gICAJY2UtPmxyY19kZXNjID0g ZGVzYzsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgc3RydWN0IGk5MTVfcHJpb2xpc3QgKgo+ICtzdGF0 aWMgdm9pZCBhc3NlcnRfcHJpb2xpc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICog Y29uc3QgZXhlY2xpc3RzLAo+ICsJCQkgICAgIGludCBxdWV1ZV9wcmlvcml0eSkKPiArewo+ICsJ c3RydWN0IHJiX25vZGUgKnJiOwo+ICsJaW50IGxhc3RfcHJpbywgaTsKPiArCj4gKwlpZiAoIUlT X0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dFTSkpCj4gKwkJcmV0dXJuOwo+ICsKPiAr CUdFTV9CVUdfT04ocmJfZmlyc3RfY2FjaGVkKCZleGVjbGlzdHMtPnF1ZXVlKSAhPQo+ICsJCSAg IHJiX2ZpcnN0KCZleGVjbGlzdHMtPnF1ZXVlLnJiX3Jvb3QpKTsKPiArCj4gKwlsYXN0X3ByaW8g PSAocXVldWVfcHJpb3JpdHkgPj4gSTkxNV9VU0VSX1BSSU9SSVRZX1NISUZUKSArIDE7CiA+Cj4g Kwlmb3IgKHJiID0gcmJfZmlyc3RfY2FjaGVkKCZleGVjbGlzdHMtPnF1ZXVlKTsgcmI7IHJiID0g cmJfbmV4dChyYikpIHsKPiArCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHRvX3ByaW9saXN0 KHJiKTsKPiArCj4gKwkJR0VNX0JVR19PTihwLT5wcmlvcml0eSA+PSBsYXN0X3ByaW8pOwo+ICsJ CWxhc3RfcHJpbyA9IHAtPnByaW9yaXR5Owo+ICsKPiArCQlHRU1fQlVHX09OKCFwLT51c2VkKTsK PiArCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwLT5yZXF1ZXN0cyk7IGkrKykgewo+ICsJ CQlpZiAobGlzdF9lbXB0eSgmcC0+cmVxdWVzdHNbaV0pKQo+ICsJCQkJY29udGludWU7CgpBc3Nl cnRpbmcgdGhhdCBiaXRtYXNrIHNsb3QgaXMgbm90IHNldCBpZiBsaXN0IGlzIGVtcHR5IGlzIG5v dCBpbnRlcmVzdGluZz8KCj4gKwo+ICsJCQlHRU1fQlVHX09OKCEocC0+dXNlZCAmIEJJVChpKSkp Owo+ICsJCX0KPiArCX0KCkluIGdlbmVyYWwsIHdvbid0IHRoaXMgYmUgYSB0aW55IGJpdCB0b28g ZXhwZW5zaXZlIG9uIGRlYnVnIGJ1aWxkIGFuZCAKd2l0aCBwcmlvcml0eS9ycSBzdHJlc3MgdGVz dHM/IFRvIHdhbGsgYWJzb2x1dGVseSBhbGwgcHJpb3JpdHkgbGV2ZWxzIAp0aW1lcyBidWNrZXQg Y291bnQgb24gZXZlcnkgbG9va3VwIGFuZCBkZXF1ZXVlLiBPciBtYXliZSB3ZSBkb24ndCBoYXZl IAphbnkgdGVzdHMgYXQgdGhlIG1vbWVudCB3aGljaCBpbnN0YW50aWF0ZSB0aGF0IG1hbnkgbGV2 ZWxzLgoKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQgKgo+ICAgbG9va3VwX3By aW9saXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHByaW8pCj4gICB7Cj4g ICAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5n aW5lLT5leGVjbGlzdHM7Cj4gICAJc3RydWN0IGk5MTVfcHJpb2xpc3QgKnA7Cj4gICAJc3RydWN0 IHJiX25vZGUgKipwYXJlbnQsICpyYjsKPiAgIAlib29sIGZpcnN0ID0gdHJ1ZTsKPiArCWludCBp ZHgsIGk7Cj4gKwo+ICsJYXNzZXJ0X3ByaW9saXN0cyhleGVjbGlzdHMsIElOVF9NQVgpOwo+ICAg Cj4gKwkvKiBidWNrZXRzIHNvcnRlZCBmcm9tIGhpZ2hlc3QgW2luIHNsb3QgMF0gdG8gbG93ZXN0 IHByaW9yaXR5ICovCj4gKwlpZHggPSBJOTE1X1BSSU9SSVRZX0NPVU5UIC0gKHByaW8gJiB+STkx NV9QUklPUklUWV9NQVNLKSAtIDE7CgowIC0gKHByaW8gJiB+MCkgLSAxID0gLXByaW8gLSAxLCBo bS4uPwoKSG0gbm8uLiBJOTE1X1BSSU9SSVRZX0NPVU5UIHdpdGggemVybyByZXNlcnZlZCBpbnRl cm5hbCBiaXRzIGlzIGFjdHVhbGx5IAoxLiAgU28gMSAtIChwcmlvICYgMHgwKSAtIDEgPSAwLCBv ayBwaGV3Li4KClVuaW50dWl0aXZlIGZvciB0aGUgY291bnQgdG8gYmUgb25lIHdpdGggbm8gcmVz ZXJ2ZWQgYml0cz8gQWx0aG91Z2ggaXQgCmlzIG9ubHkgYSB0ZW1wb3Jhcnkgc3RhZ2UuLgoKPiAr CXByaW8gPj49IEk5MTVfVVNFUl9QUklPUklUWV9TSElGVDsKPiAgIAlpZiAodW5saWtlbHkoZXhl Y2xpc3RzLT5ub19wcmlvbGlzdCkpCj4gICAJCXByaW8gPSBJOTE1X1BSSU9SSVRZX05PUk1BTDsK PiAgIAo+IEBAIC0yODMsNyArMzE4LDcgQEAgbG9va3VwX3ByaW9saXN0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwgaW50IHByaW8pCj4gICAJCQlwYXJlbnQgPSAmcmItPnJiX3JpZ2h0 Owo+ICAgCQkJZmlyc3QgPSBmYWxzZTsKPiAgIAkJfSBlbHNlIHsKPiAtCQkJcmV0dXJuIHA7Cj4g KwkJCWdvdG8gb3V0Owo+ICAgCQl9Cj4gICAJfQo+ICAgCj4gQEAgLTMwOSwxMSArMzQ0LDE1IEBA IGxvb2t1cF9wcmlvbGlzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBwcmlv KQo+ICAgCX0KPiAgIAo+ICAgCXAtPnByaW9yaXR5ID0gcHJpbzsKPiAtCUlOSVRfTElTVF9IRUFE KCZwLT5yZXF1ZXN0cyk7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwLT5yZXF1ZXN0 cyk7IGkrKykKPiArCQlJTklUX0xJU1RfSEVBRCgmcC0+cmVxdWVzdHNbaV0pOwo+ICAgCXJiX2xp bmtfbm9kZSgmcC0+bm9kZSwgcmIsIHBhcmVudCk7Cj4gICAJcmJfaW5zZXJ0X2NvbG9yX2NhY2hl ZCgmcC0+bm9kZSwgJmV4ZWNsaXN0cy0+cXVldWUsIGZpcnN0KTsKPiArCXAtPnVzZWQgPSAwOwo+ ICAgCj4gLQlyZXR1cm4gcDsKPiArb3V0Ogo+ICsJcC0+dXNlZCB8PSBCSVQoaWR4KTsKPiArCXJl dHVybiAmcC0+cmVxdWVzdHNbaWR4XTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgdW53aW5k X3dhX3RhaWwoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gQEAgLTMyNSw3ICszNjQsNyBAQCBz dGF0aWMgdm9pZCB1bndpbmRfd2FfdGFpbChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIHN0 YXRpYyB2b2lkIF9fdW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCAqcm47Cj4g LQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqdW5pbml0aWFsaXplZF92YXIocCk7Cj4gKwlzdHJ1Y3Qg bGlzdF9oZWFkICp1bmluaXRpYWxpemVkX3ZhcihwbCk7Cj4gICAJaW50IGxhc3RfcHJpbyA9IEk5 MTVfUFJJT1JJVFlfSU5WQUxJRDsKPiAgIAo+ICAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2lu ZS0+dGltZWxpbmUubG9jayk7Cj4gQEAgLTM0MiwxMiArMzgxLDExIEBAIHN0YXRpYyB2b2lkIF9f dW53aW5kX2luY29tcGxldGVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICAgCQlHRU1fQlVHX09OKHJxX3ByaW8ocnEpID09IEk5MTVfUFJJT1JJVFlfSU5WQUxJRCk7 Cj4gICAJCWlmIChycV9wcmlvKHJxKSAhPSBsYXN0X3ByaW8pIHsKPiAgIAkJCWxhc3RfcHJpbyA9 IHJxX3ByaW8ocnEpOwo+IC0JCQlwID0gbG9va3VwX3ByaW9saXN0KGVuZ2luZSwgbGFzdF9wcmlv KTsKPiArCQkJcGwgPSBsb29rdXBfcHJpb2xpc3QoZW5naW5lLCBsYXN0X3ByaW8pOwo+ICAgCQl9 Cj4gICAJCUdFTV9CVUdfT04oUkJfRU1QVFlfUk9PVCgmZW5naW5lLT5leGVjbGlzdHMucXVldWUu cmJfcm9vdCkpOwo+ICAgCj4gLQkJR0VNX0JVR19PTihwLT5wcmlvcml0eSAhPSBycV9wcmlvKHJx KSk7Cj4gLQkJbGlzdF9hZGQoJnJxLT5zY2hlZC5saW5rLCAmcC0+cmVxdWVzdHMpOwo+ICsJCWxp c3RfYWRkKCZycS0+c2NoZWQubGluaywgcGwpOwo+ICAgCX0KPiAgIH0KPiAgIAo+IEBAIC02NjUs OCArNzAzLDkgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICAgCXdoaWxlICgocmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNs aXN0cy0+cXVldWUpKSkgewo+ICAgCQlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHRvX3ByaW9s aXN0KHJiKTsKPiAgIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsICpybjsKPiArCQlpbnQgaTsK PiAgIAo+IC0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShycSwgcm4sICZwLT5yZXF1ZXN0cywg c2NoZWQubGluaykgewo+ICsJCXByaW9saXN0X2Zvcl9lYWNoX3JlcXVlc3RfY29uc3VtZShycSwg cm4sIHAsIGkpIHsKPiAgIAkJCS8qCj4gICAJCQkgKiBDYW4gd2UgY29tYmluZSB0aGlzIHJlcXVl c3Qgd2l0aCB0aGUgY3VycmVudCBwb3J0Pwo+ICAgCQkJICogSXQgaGFzIHRvIGJlIHRoZSBzYW1l IGNvbnRleHQvcmluZ2J1ZmZlciBhbmQgbm90Cj4gQEAgLTY4NSwxMSArNzI0LDggQEAgc3RhdGlj IHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICAgCQkJCSAqIGNvbWJpbmUgdGhpcyByZXF1ZXN0IHdpdGggdGhlIGxhc3QsIHRoZW4gd2UKPiAg IAkJCQkgKiBhcmUgZG9uZS4KPiAgIAkJCQkgKi8KPiAtCQkJCWlmIChwb3J0ID09IGxhc3RfcG9y dCkgewo+IC0JCQkJCV9fbGlzdF9kZWxfbWFueSgmcC0+cmVxdWVzdHMsCj4gLQkJCQkJCQkmcnEt PnNjaGVkLmxpbmspOwo+ICsJCQkJaWYgKHBvcnQgPT0gbGFzdF9wb3J0KQo+ICAgCQkJCQlnb3Rv IGRvbmU7Cj4gLQkJCQl9Cj4gICAKPiAgIAkJCQkvKgo+ICAgCQkJCSAqIElmIEdWVCBvdmVycmlk ZXMgdXMgd2Ugb25seSBldmVyIHN1Ym1pdAo+IEBAIC02OTksMTEgKzczNSw4IEBAIHN0YXRpYyB2 b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg IAkJCQkgKiByZXF1ZXN0KSB0byB0aGUgc2Vjb25kIHBvcnQuCj4gICAJCQkJICovCj4gICAJCQkJ aWYgKGN0eF9zaW5nbGVfcG9ydF9zdWJtaXNzaW9uKGxhc3QtPmh3X2NvbnRleHQpIHx8Cj4gLQkJ CQkgICAgY3R4X3NpbmdsZV9wb3J0X3N1Ym1pc3Npb24ocnEtPmh3X2NvbnRleHQpKSB7Cj4gLQkJ CQkJX19saXN0X2RlbF9tYW55KCZwLT5yZXF1ZXN0cywKPiAtCQkJCQkJCSZycS0+c2NoZWQubGlu ayk7Cj4gKwkJCQkgICAgY3R4X3NpbmdsZV9wb3J0X3N1Ym1pc3Npb24ocnEtPmh3X2NvbnRleHQp KQo+ICAgCQkJCQlnb3RvIGRvbmU7Cj4gLQkJCQl9Cj4gICAKPiAgIAkJCQlHRU1fQlVHX09OKGxh c3QtPmh3X2NvbnRleHQgPT0gcnEtPmh3X2NvbnRleHQpOwo+ICAgCj4gQEAgLTcxNCwxNSArNzQ3 LDE2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiAgIAkJCQlHRU1fQlVHX09OKHBvcnRfaXNzZXQocG9ydCkpOwo+ICAgCQkJ fQo+ICAgCj4gLQkJCUlOSVRfTElTVF9IRUFEKCZycS0+c2NoZWQubGluayk7Cj4gKwkJCWxpc3Rf ZGVsX2luaXQoJnJxLT5zY2hlZC5saW5rKTsKPiArCj4gICAJCQlfX2k5MTVfcmVxdWVzdF9zdWJt aXQocnEpOwo+ICAgCQkJdHJhY2VfaTkxNV9yZXF1ZXN0X2luKHJxLCBwb3J0X2luZGV4KHBvcnQs IGV4ZWNsaXN0cykpOwo+ICsKPiAgIAkJCWxhc3QgPSBycTsKPiAgIAkJCXN1Ym1pdCA9IHRydWU7 Cj4gICAJCX0KPiAgIAo+ICAgCQlyYl9lcmFzZV9jYWNoZWQoJnAtPm5vZGUsICZleGVjbGlzdHMt PnF1ZXVlKTsKPiAtCQlJTklUX0xJU1RfSEVBRCgmcC0+cmVxdWVzdHMpOwo+ICAgCQlpZiAocC0+ cHJpb3JpdHkgIT0gSTkxNV9QUklPUklUWV9OT1JNQUwpCj4gICAJCQlrbWVtX2NhY2hlX2ZyZWUo ZW5naW5lLT5pOTE1LT5wcmlvcml0aWVzLCBwKTsKPiAgIAl9Cj4gQEAgLTc0Niw2ICs3ODAsNyBA QCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICAJICovCj4gICAJZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eSA9Cj4gICAJCXBv cnQgIT0gZXhlY2xpc3RzLT5wb3J0ID8gcnFfcHJpbyhsYXN0KSA6IElOVF9NSU47Cj4gKwlhc3Nl cnRfcHJpb2xpc3RzKGV4ZWNsaXN0cywgZXhlY2xpc3RzLT5xdWV1ZV9wcmlvcml0eSk7Cj4gICAK PiAgIAlpZiAoc3VibWl0KSB7Cj4gICAJCXBvcnRfYXNzaWduKHBvcnQsIGxhc3QpOwo+IEBAIC04 NTcsMTYgKzg5MiwxNiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAkvKiBGbHVzaCB0aGUgcXVldWVkIHJl cXVlc3RzIHRvIHRoZSB0aW1lbGluZSBsaXN0IChmb3IgcmV0aXJpbmcpLiAqLwo+ICAgCXdoaWxl ICgocmIgPSByYl9maXJzdF9jYWNoZWQoJmV4ZWNsaXN0cy0+cXVldWUpKSkgewo+ICAgCQlzdHJ1 Y3QgaTkxNV9wcmlvbGlzdCAqcCA9IHRvX3ByaW9saXN0KHJiKTsKPiArCQlpbnQgaTsKPiAgIAo+ IC0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShycSwgcm4sICZwLT5yZXF1ZXN0cywgc2NoZWQu bGluaykgewo+IC0JCQlJTklUX0xJU1RfSEVBRCgmcnEtPnNjaGVkLmxpbmspOwo+ICsJCXByaW9s aXN0X2Zvcl9lYWNoX3JlcXVlc3RfY29uc3VtZShycSwgcm4sIHAsIGkpIHsKPiArCQkJbGlzdF9k ZWxfaW5pdCgmcnEtPnNjaGVkLmxpbmspOwo+ICAgCj4gICAJCQlkbWFfZmVuY2Vfc2V0X2Vycm9y KCZycS0+ZmVuY2UsIC1FSU8pOwo+ICAgCQkJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHJxKTsKPiAg IAkJfQo+ICAgCj4gICAJCXJiX2VyYXNlX2NhY2hlZCgmcC0+bm9kZSwgJmV4ZWNsaXN0cy0+cXVl dWUpOwo+IC0JCUlOSVRfTElTVF9IRUFEKCZwLT5yZXF1ZXN0cyk7Cj4gICAJCWlmIChwLT5wcmlv cml0eSAhPSBJOTE1X1BSSU9SSVRZX05PUk1BTCkKPiAgIAkJCWttZW1fY2FjaGVfZnJlZShlbmdp bmUtPmk5MTUtPnByaW9yaXRpZXMsIHApOwo+ICAgCX0KPiBAQCAtMTA3Miw4ICsxMTA3LDcgQEAg c3RhdGljIHZvaWQgcXVldWVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Cj4gICAJCQkgIHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCj4gICAJCQkgIGludCBwcmlv KQo+ICAgewo+IC0JbGlzdF9hZGRfdGFpbCgmbm9kZS0+bGluaywKPiAtCQkgICAgICAmbG9va3Vw X3ByaW9saXN0KGVuZ2luZSwgcHJpbyktPnJlcXVlc3RzKTsKPiArCWxpc3RfYWRkX3RhaWwoJm5v ZGUtPmxpbmssIGxvb2t1cF9wcmlvbGlzdChlbmdpbmUsIHByaW8pKTsKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHZvaWQgX191cGRhdGVfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LCBpbnQgcHJpbykKPiBAQCAtMTE0Myw3ICsxMTc3LDcgQEAgc2NoZWRfbG9ja19lbmdpbmUoc3Ry dWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbG9ja2Vk KQo+ICAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3NjaGVkdWxlKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJlcXVlc3QsCj4gICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0 cikKPiAgIHsKPiAtCXN0cnVjdCBpOTE1X3ByaW9saXN0ICp1bmluaXRpYWxpemVkX3ZhcihwbCk7 Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkICp1bmluaXRpYWxpemVkX3ZhcihwbCk7Cj4gICAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCAqbGFzdDsKPiAgIAlzdHJ1Y3QgaTkxNV9kZXBlbmRl bmN5ICpkZXAsICpwOwo+ICAgCXN0cnVjdCBpOTE1X2RlcGVuZGVuY3kgc3RhY2s7Cj4gQEAgLTEy NDIsOCArMTI3Niw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zY2hlZHVsZShzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCQkJCXBsID0gbG9va3VwX3ByaW9saXN0KGVuZ2luZSwg cHJpbyk7Cj4gICAJCQkJbGFzdCA9IGVuZ2luZTsKPiAgIAkJCX0KPiAtCQkJR0VNX0JVR19PTihw bC0+cHJpb3JpdHkgIT0gcHJpbyk7Cj4gLQkJCWxpc3RfbW92ZV90YWlsKCZub2RlLT5saW5rLCAm cGwtPnJlcXVlc3RzKTsKPiArCQkJbGlzdF9tb3ZlX3RhaWwoJm5vZGUtPmxpbmssIHBsKTsKPiAg IAkJfSBlbHNlIHsKPiAgIAkJCS8qCj4gICAJCQkgKiBJZiB0aGUgcmVxdWVzdCBpcyBub3QgaW4g dGhlIHByaW9saXN0IHF1ZXVlIGJlY2F1c2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCj4gaW5kZXggMmRmYTU4NTcxMmMyLi4xNTM0ZGU1YmI4NTIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTE5MCwxMSArMTkwLDIyIEBA IGVudW0gaW50ZWxfZW5naW5lX2lkIHsKPiAgIH07Cj4gICAKPiAgIHN0cnVjdCBpOTE1X3ByaW9s aXN0IHsKPiArCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdHNbSTkxNV9QUklPUklUWV9DT1VOVF07 Cj4gICAJc3RydWN0IHJiX25vZGUgbm9kZTsKPiAtCXN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdHM7 Cj4gKwl1bnNpZ25lZCBsb25nIHVzZWQ7Cj4gICAJaW50IHByaW9yaXR5Owo+ICAgfTsKPiAgIAo+ ICsjZGVmaW5lIHByaW9saXN0X2Zvcl9lYWNoX3JlcXVlc3QoaXQsIHBsaXN0LCBpZHgpIFwKPiAr CWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRSgocGxpc3QpLT5yZXF1ZXN0cyk7IGlkeCsr KSBcCj4gKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShpdCwgJihwbGlzdCktPnJlcXVlc3RzW2lkeF0s IHNjaGVkLmxpbmspCj4gKwo+ICsjZGVmaW5lIHByaW9saXN0X2Zvcl9lYWNoX3JlcXVlc3RfY29u c3VtZShpdCwgbiwgcGxpc3QsIGlkeCkgXAo+ICsJZm9yICg7IChpZHggPSBmZnMoKHBsaXN0KS0+ dXNlZCkpOyAocGxpc3QpLT51c2VkICY9IH5CSVQoaWR4IC0gMSkpIFwKPiArCQlsaXN0X2Zvcl9l YWNoX2VudHJ5X3NhZmUoaXQsIG4sIFwKPiArCQkJCQkgJihwbGlzdCktPnJlcXVlc3RzW2lkeCAt IDFdLCBcCj4gKwkJCQkJIHNjaGVkLmxpbmspCj4gKwo+ICAgc3RydWN0IHN0X3ByZWVtcHRfaGFu ZyB7Cj4gICAJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKPiAgIAlib29sIGluamVjdF9o YW5nOwo+IAoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK