From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 4/4] drm/i915/execlists: Suppress preempting self Date: Tue, 29 Jan 2019 18:54:52 +0000 Message-ID: <20190129185452.20989-4-chris@chris-wilson.co.uk> References: <20190129185452.20989-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id C731B6E935 for ; Tue, 29 Jan 2019 18:54:58 +0000 (UTC) Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 15394680-1500050 for ; Tue, 29 Jan 2019 18:54:53 +0000 In-Reply-To: <20190129185452.20989-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SW4gb3JkZXIgdG8gYXZvaWQgcHJlZW1wdGluZyBvdXJzZWx2ZXMsIHdlIGN1cnJlbnRseSByZWZ1 c2UgdG8gc2NoZWR1bGUKdGhlIHRhc2tsZXQgaWYgd2UgcmVzY2hlZHVsZSBhbiBpbmZsaWdodCBj b250ZXh0LiBIb3dldmVyLCB0aGlzIGdsb3NzZXMKb3ZlciBhIGZldyBpc3N1ZXMgc3VjaCBhcyB3 aGF0IGhhcHBlbnMgYWZ0ZXIgYSBDUyBjb21wbGV0aW9uIGV2ZW50IGFuZAp3ZSB0aGVuIHByZWVt cHQgdGhlIG5ld2x5IGV4ZWN1dGluZyBjb250ZXh0IHdpdGggaXRzZWxmLCBvciBpZiBzb21ldGhp bmcKZWxzZSBjYXVzZXMgYSB0YXNrbGV0X3NjaGVkdWxlIHRyaWdnZXJpbmcgdGhlIHNhbWUgZXZh bHVhdGlvbiB0bwpwcmVlbXB0IHRoZSBhY3RpdmUgY29udGV4dCB3aXRoIGl0c2VsZi4KCkhvd2V2 ZXIsIHdoZW4gd2UgYXZvaWQgcHJlZW1wdGluZyBFTFNQWzBdLCB3ZSBzdGlsbCByZXRhaW4gdGhl IHByZWVtcHRpb24KdmFsdWUgYXMgaXQgbWF5IG1hdGNoIGEgc2Vjb25kIHByZWVtcHRpb24gcmVx dWVzdCB3aXRoaW4gdGhlIHNhbWUgdGltZSBwZXJpb2QKdGhhdCB3ZSBuZWVkIHRvIHJlc29sdmUg YWZ0ZXIgdGhlIG5leHQgQ1MgZXZlbnQuIEhvd2V2ZXIsIHNpbmNlIHdlIG9ubHkKc3RvcmUgdGhl IG1heGltdW0gcHJlZW1wdGlvbiBwcmlvcml0eSBzZWVuLCBpdCBtYXkgbm90IG1hdGNoIHRoZQpz dWJzZXF1ZW50IGV2ZW50IGFuZCBzbyB3ZSBzaG91bGQgZG91YmxlIGNoZWNrIHdoZXRoZXIgb3Ig bm90IHdlCmFjdHVhbGx5IGRvIG5lZWQgdG8gdHJpZ2dlciBhIHByZWVtcHQtdG8taWRsZSBieSBj b21wYXJpbmcgdGhlIHRvcApwcmlvcml0aWVzIGZyb20gZWFjaCBxdWV1ZS4gTGF0ZXIsIHRoaXMg Z2l2ZXMgdXMgYSBob29rIGZvciBmaW5lcgpjb250cm9sIG92ZXIgZGVjaWRpbmcgd2hldGhlciB0 aGUgcHJlZW1wdC10by1pZGxlIGlzIGp1c3RpZmllZC4KClRoZSBzZXF1ZW5jZSBvZiBldmVudHMg d2hlcmUgd2UgZW5kIHVwIHByZWVtcHRpbmcgZm9yIG5vIGF2YWlsIGlzOgoKMS4gUXVldWUgcmVx dWVzdHMvY29udGV4dHMgQSwgQgoyLiBQcmlvcml0eSBib29zdCBBOyBubyBwcmVlbXB0aW9uIGFz IGl0IGlzIGV4ZWN1dGluZywgYnV0IGtlZXAgaGludAozLiBBZnRlciBDUyBzd2l0Y2gsIEIgaXMg bGVzcyB0aGFuIGhpbnQsIGZvcmNlIHByZWVtcHQtdG8taWRsZQo0LiBSZXN1Ym1pdCBCIGFmdGVy IGlkbGluZwoKdjI6IFdlIGNhbiBzaW1wbGlmeSBhIGJ1bmNoIG9mIHRlc3RzIGJhc2VkIG9uIHRo ZSBrbm93bGVkZ2UgdGhhdCBQSSB3aWxsCmVuc3VyZSB0aGF0IGVhcmxpZXIgcmVxdWVzdHMgYWxv bmcgdGhlIHNhbWUgY29udGV4dCB3aWxsIGhhdmUgdGhlIGhpZ2hlc3QKcHJpb3JpdHkuCnYzOiBE ZW1vbnN0cmF0ZSB0aGUgc3RhbGUgcHJlZW1wdGlvbiBoaW50IHdpdGggYSBzZWxmdGVzdAoKUmVm ZXJlbmNlczogYTJiZjkyZThjYzE2ICgiZHJtL2k5MTUvZXhlY2xpc3RzOiBBdm9pZCBraWNraW5n IHByaW9yaXR5IG9uIHRoZSBjdXJyZW50IGNvbnRleHQiKQpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtv LnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1 bGVyLmMgICAgICAgfCAgMjAgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3Vi bWlzc2lvbi5jIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAg ICAgICAgfCAgOTYgKysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lu dGVsX2xyYy5jICB8IDEzOCArKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAy NDUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c2NoZWR1bGVyLmMKaW5kZXggNGVlYmE1ODhiOTk2Li4yZDE3Mjk5MTAyNGYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwpAQCAtMjM4LDYgKzIzOCwxOCBAQCBzY2hlZF9sb2Nr X2VuZ2luZShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlLCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpsb2NrZWQpCiAJcmV0dXJuIGVuZ2luZTsKIH0KIAorc3RhdGljIGJvb2wgaW5mbGlnaHQo Y29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCisJCSAgICAgY29uc3Qgc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQoreworCWNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKmFjdGl2 ZTsKKworCWlmICghcnEtPmdsb2JhbF9zZXFubykKKwkJcmV0dXJuIGZhbHNlOworCisJYWN0aXZl ID0gcG9ydF9yZXF1ZXN0KGVuZ2luZS0+ZXhlY2xpc3RzLnBvcnQpOworCXJldHVybiBhY3RpdmUt Pmh3X2NvbnRleHQgPT0gcnEtPmh3X2NvbnRleHQ7Cit9CisKIHN0YXRpYyB2b2lkIF9faTkxNV9z Y2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgaTkx NV9zY2hlZF9hdHRyICphdHRyKQogewpAQCAtMzI3LDYgKzMzOSw3IEBAIHN0YXRpYyB2b2lkIF9f aTkxNV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkJSU5JVF9MSVNUX0hFQUQo JmRlcC0+ZGZzX2xpbmspOwogCiAJCWVuZ2luZSA9IHNjaGVkX2xvY2tfZW5naW5lKG5vZGUsIGVu Z2luZSk7CisJCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7CiAK IAkJLyogUmVjaGVjayBhZnRlciBhY3F1aXJpbmcgdGhlIGVuZ2luZS0+dGltZWxpbmUubG9jayAq LwogCQlpZiAocHJpbyA8PSBub2RlLT5hdHRyLnByaW9yaXR5IHx8IG5vZGVfc2lnbmFsZWQobm9k ZSkpCkBAIC0zNTUsMTcgKzM2OCwxNiBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfc2NoZWR1bGUoc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJCWlmIChwcmlvIDw9IGVuZ2luZS0+ZXhlY2xpc3RzLnF1 ZXVlX3ByaW9yaXR5X2hpbnQpCiAJCQljb250aW51ZTsKIAorCQllbmdpbmUtPmV4ZWNsaXN0cy5x dWV1ZV9wcmlvcml0eV9oaW50ID0gcHJpbzsKKwogCQkvKgogCQkgKiBJZiB3ZSBhcmUgYWxyZWFk eSB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250ZXh0LCBkb24ndAogCQkgKiBib3RoZXIgZXZh bHVhdGluZyBpZiB3ZSBzaG91bGQgcHJlZW1wdCBvdXJzZWx2ZXMuCiAJCSAqLwotCQlpZiAobm9k ZV90b19yZXF1ZXN0KG5vZGUpLT5nbG9iYWxfc2Vxbm8gJiYKLQkJICAgIGk5MTVfc2Vxbm9fcGFz c2VkKHBvcnRfcmVxdWVzdChlbmdpbmUtPmV4ZWNsaXN0cy5wb3J0KS0+Z2xvYmFsX3NlcW5vLAot CQkJCSAgICAgIG5vZGVfdG9fcmVxdWVzdChub2RlKS0+Z2xvYmFsX3NlcW5vKSkKKwkJaWYgKGlu ZmxpZ2h0KG5vZGVfdG9fcmVxdWVzdChub2RlKSwgZW5naW5lKSkKIAkJCWNvbnRpbnVlOwogCiAJ CS8qIERlZmVyICh0YXNrbGV0KSBzdWJtaXNzaW9uIHVudGlsIGFmdGVyIGFsbCBvZiBvdXIgdXBk YXRlcy4gKi8KLQkJZW5naW5lLT5leGVjbGlzdHMucXVldWVfcHJpb3JpdHlfaGludCA9IHByaW87 CiAJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwogCX0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggZjEy ZWNjOGRlYzZiLi44YmM4YWE1NGFhMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX3N1Ym1pc3Npb24uYwpAQCAtNjI5LDYgKzYyOSw4IEBAIHN0YXRpYyB2b2lkIGluamVjdF9w cmVlbXB0X2NvbnRleHQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJCSAgICAgICBFWEVD TElTVFNfQUNUSVZFX1BSRUVNUFQpOwogCQl0YXNrbGV0X3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNs aXN0cy50YXNrbGV0KTsKIAl9CisKKwkodm9pZClJOTE1X1NFTEZURVNUX09OTFkoZW5naW5lLT5l eGVjbGlzdHMucHJlZW1wdF9oYW5nLmNvdW50KyspOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwppbmRleCBhMTAzNGY3MDY5YWEuLmE5ZWIwMjExY2U3NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKQEAgLTE4OCwxMyArMTg4LDkwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHJxX3By aW8oY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJcmV0dXJuIHJxLT5zY2hlZC5hdHRy LnByaW9yaXR5OwogfQogCitzdGF0aWMgaW50IHF1ZXVlX3ByaW8oY29uc3Qgc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKK3sKKwlzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAq cDsKKwlzdHJ1Y3QgcmJfbm9kZSAqcmI7CisKKwlyYiA9IHJiX2ZpcnN0X2NhY2hlZCgmZXhlY2xp c3RzLT5xdWV1ZSk7CisJaWYgKCFyYikKKwkJcmV0dXJuIElOVF9NSU47CisKKwkvKgorCSAqIEFz IHRoZSBwcmlvbGlzdFtdIGFyZSBpbnZlcnRlZCwgd2l0aCB0aGUgaGlnaGVzdCBwcmlvcml0eSBp biBbMF0sCisJICogd2UgaGF2ZSB0byBmbGlwIHRoZSBpbmRleCB2YWx1ZSB0byBiZWNvbWUgcHJp b3JpdHkuCisJICovCisJcCA9IHRvX3ByaW9saXN0KHJiKTsKKwlyZXR1cm4gKChwLT5wcmlvcml0 eSArIDEpIDw8IEk5MTVfVVNFUl9QUklPUklUWV9TSElGVCkgLSBmZnMocC0+dXNlZCk7Cit9CisK IHN0YXRpYyBpbmxpbmUgYm9vbCBuZWVkX3ByZWVtcHQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAotCQkJCWNvbnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKmxhc3QsCi0JCQkJ aW50IHByaW8pCisJCQkJY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCit7CisJY29uc3Qg aW50IGxhc3RfcHJpbyA9IHJxX3ByaW8ocnEpOworCisJaWYgKCFpbnRlbF9lbmdpbmVfaGFzX3By ZWVtcHRpb24oZW5naW5lKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGk5MTVfcmVxdWVzdF9j b21wbGV0ZWQocnEpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIENoZWNrIGlmIHRoZSBj dXJyZW50IHByaW9yaXR5IGhpbnQgbWVyaXRzIGEgcHJlZW1wdGlvbiBhdHRlbXB0LgorCSAqCisJ ICogV2UgcmVjb3JkIHRoZSBoaWdoZXN0IHZhbHVlIHByaW9yaXR5IHdlIHNhdyBkdXJpbmcgcmVz Y2hlZHVsaW5nCisJICogcHJpb3IgdG8gdGhpcyBkZXF1ZXVlLCB0aGVyZWZvcmUgd2Uga25vdyB0 aGF0IGlmIGl0IGlzIHN0cmljdGx5CisJICogbGVzcyB0aGFuIHRoZSBjdXJyZW50IHRhaWwgb2Yg RVNMUFswXSwgd2UgZG8gbm90IG5lZWQgdG8gZm9yY2UKKwkgKiBhIHByZWVtcHQtdG8taWRsZSBj eWNsZS4KKwkgKgorCSAqIEhvd2V2ZXIsIHRoZSBwcmlvcml0eSBoaW50IGlzIGEgbWVyZSBoaW50 IHRoYXQgd2UgbWF5IG5lZWQgdG8KKwkgKiBwcmVlbXB0LiBJZiB0aGF0IGhpbnQgaXMgc3RhbGUg b3Igd2UgbWF5IGJlIHRyeWluZyB0byBwcmVlbXB0CisJICogb3Vyc2VsdmVzLCBpZ25vcmUgdGhl IHJlcXVlc3QuCisJICovCisJaWYgKCFfX2V4ZWNsaXN0c19uZWVkX3ByZWVtcHQoZW5naW5lLT5l eGVjbGlzdHMucXVldWVfcHJpb3JpdHlfaGludCwKKwkJCQkgICAgICBsYXN0X3ByaW8pKQorCQly ZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIENoZWNrIGFnYWluc3QgdGhlIGZpcnN0IHJlcXVlc3Qg aW4gRUxTUFsxXSwgaXQgd2lsbCwgdGhhbmtzIHRvIHRoZQorCSAqIHBvd2VyIG9mIFBJLCBiZSB0 aGUgaGlnaGVzdCBwcmlvcml0eSBvZiB0aGF0IGNvbnRleHQuCisJICovCisJaWYgKCFsaXN0X2lz X2xhc3QoJnJxLT5saW5rLCAmZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cykgJiYKKwkgICAgcnFf cHJpbyhsaXN0X25leHRfZW50cnkocnEsIGxpbmspKSA+IGxhc3RfcHJpbykKKwkJcmV0dXJuIHRy dWU7CisKKwkvKgorCSAqIElmIHRoZSBpbmZsaWdodCBjb250ZXh0IGRpZCBub3QgdHJpZ2dlciB0 aGUgcHJlZW1wdGlvbiwgdGhlbiBtYXliZQorCSAqIGl0IHdhcyB0aGUgc2V0IG9mIHF1ZXVlZCBy ZXF1ZXN0cz8gUGljayB0aGUgaGlnaGVzdCBwcmlvcml0eSBpbgorCSAqIHRoZSBxdWV1ZSAodGhl IGZpcnN0IGFjdGl2ZSBwcmlvbGlzdCkgYW5kIHNlZSBpZiBpdCBkZXNlcnZlcyB0byBiZQorCSAq IHJ1bm5pbmcgaW5zdGVhZCBvZiBFTFNQWzBdLgorCSAqCisJICogVGhlIGhpZ2hlc3QgcHJpb3Jp dHkgcmVxdWVzdCBpbiB0aGUgcXVldWUgY2FuIG5vdCBiZSBlaXRoZXIKKwkgKiBFTFNQWzBdIG9y IEVMU1BbMV0gYXMsIHRoYW5rcyBhZ2FpbiB0byBQSSwgaWYgaXQgd2FzIHRoZSBzYW1lCisJICog Y29udGV4dCwgaXQncyBwcmlvcml0eSB3b3VsZCBub3QgZXhjZWVkIEVMU1BbMF0gYWthIGxhc3Rf cHJpby4KKwkgKi8KKwlyZXR1cm4gcXVldWVfcHJpbygmZW5naW5lLT5leGVjbGlzdHMpID4gbGFz dF9wcmlvOworfQorCitfX21heWJlX3VudXNlZCBzdGF0aWMgaW5saW5lIGJvb2wKK2Fzc2VydF9w cmlvcml0eV9xdWV1ZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xp c3RzLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpwcmV2LAorCQkgICAgICBj b25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpuZXh0KQogewotCXJldHVybiAoaW50ZWxfZW5naW5l X2hhc19wcmVlbXB0aW9uKGVuZ2luZSkgJiYKLQkJX19leGVjbGlzdHNfbmVlZF9wcmVlbXB0KHBy aW8sIHJxX3ByaW8obGFzdCkpICYmCi0JCSFpOTE1X3JlcXVlc3RfY29tcGxldGVkKGxhc3QpKTsK KwlpZiAoIXByZXYpCisJCXJldHVybiB0cnVlOworCisJLyoKKwkgKiBXaXRob3V0IHByZWVtcHRp b24sIHRoZSBwcmV2IG1heSByZWZlciB0byB0aGUgc3RpbGwgYWN0aXZlIGVsZW1lbnQKKwkgKiB3 aGljaCB3ZSByZWZ1c2UgdG8gbGV0IGdvLgorCSAqCisJICogRXZlbiB3aXRoIHByZWVtcHRpb24s IHRoZXJlIGFyZSB0aW1lcyB3aGVuIHdlIHRoaW5rIGl0IGlzIGJldHRlciBub3QKKwkgKiB0byBw cmVlbXB0IGFuZCBsZWF2ZSBhbiBvc3RlbnNpYmx5IGxvd2VyIHByaW9yaXR5IHJlcXVlc3QgaW4g ZmxpZ2h0LgorCSAqLworCWlmIChwb3J0X3JlcXVlc3QoZXhlY2xpc3RzLT5wb3J0KSA9PSBwcmV2 KQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBycV9wcmlvKHByZXYpID49IHJxX3ByaW8obmV4 dCk7CiB9CiAKIC8qCkBAIC01MjMsNiArNjAwLDggQEAgc3RhdGljIHZvaWQgaW5qZWN0X3ByZWVt cHRfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlleGVjbGlzdHNf Y2xlYXJfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RTX0FDVElWRV9IV0FDSyk7CiAJZXhlY2xp c3RzX3NldF9hY3RpdmUoZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOworCisJ KHZvaWQpSTkxNV9TRUxGVEVTVF9PTkxZKGV4ZWNsaXN0cy0+cHJlZW1wdF9oYW5nLmNvdW50Kysp OwogfQogCiBzdGF0aWMgdm9pZCBjb21wbGV0ZV9wcmVlbXB0X2NvbnRleHQoc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKQEAgLTU5MSw3ICs2NzAsNyBAQCBzdGF0aWMg dm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ CWlmICghZXhlY2xpc3RzX2lzX2FjdGl2ZShleGVjbGlzdHMsIEVYRUNMSVNUU19BQ1RJVkVfSFdB Q0spKQogCQkJcmV0dXJuOwogCi0JCWlmIChuZWVkX3ByZWVtcHQoZW5naW5lLCBsYXN0LCBleGVj bGlzdHMtPnF1ZXVlX3ByaW9yaXR5X2hpbnQpKSB7CisJCWlmIChuZWVkX3ByZWVtcHQoZW5naW5l LCBsYXN0KSkgewogCQkJaW5qZWN0X3ByZWVtcHRfY29udGV4dChlbmdpbmUpOwogCQkJcmV0dXJu OwogCQl9CkBAIC02MzcsOCArNzE2LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpbnQgaTsKIAogCQlwcmlvbGlzdF9m b3JfZWFjaF9yZXF1ZXN0X2NvbnN1bWUocnEsIHJuLCBwLCBpKSB7Ci0JCQlHRU1fQlVHX09OKGxh c3QgJiYKLQkJCQkgICBuZWVkX3ByZWVtcHQoZW5naW5lLCBsYXN0LCBycV9wcmlvKHJxKSkpOwor CQkJR0VNX0JVR19PTighYXNzZXJ0X3ByaW9yaXR5X3F1ZXVlKGV4ZWNsaXN0cywgbGFzdCwgcnEp KTsKIAogCQkJLyoKIAkJCSAqIENhbiB3ZSBjb21iaW5lIHRoaXMgcmVxdWVzdCB3aXRoIHRoZSBj dXJyZW50IHBvcnQ/CkBAIC04ODQsNiArOTYyLDggQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jc2Io c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWNvbnN0IHUzMiAqIGNvbnN0IGJ1ZiA9 IGV4ZWNsaXN0cy0+Y3NiX3N0YXR1czsKIAl1OCBoZWFkLCB0YWlsOwogCisJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKKwogCS8qCiAJICogTm90ZSB0aGF0IGNz Yl93cml0ZSwgY3NiX3N0YXR1cyBtYXkgYmUgZWl0aGVyIGluIEhXU1Agb3IgbW1pby4KIAkgKiBX aGVuIHJlYWRpbmcgZnJvbSB0aGUgY3NiX3dyaXRlIG1taW8gcmVnaXN0ZXIsIHdlIGhhdmUgdG8g YmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCBlZjAyNGMxNTRh MWIuLjk1M2NjYzI2MTdmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aApAQCAtMjAzLDYgKzIwMyw3IEBAIHN0cnVjdCBpOTE1X3ByaW9saXN0IHsKIAogc3RydWN0IHN0 X3ByZWVtcHRfaGFuZyB7CiAJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKKwl1bnNpZ25l ZCBpbnQgY291bnQ7CiAJYm9vbCBpbmplY3RfaGFuZzsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYwppbmRleCAyYjJlY2Q3NmMyYWMuLmZiMzVmNTNjOWNl MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2xyYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9scmMuYwpAQCAtMjY4 LDYgKzI2OCwxNDMgQEAgc3RhdGljIGludCBsaXZlX2xhdGVfcHJlZW1wdCh2b2lkICphcmcpCiAJ Z290byBlcnJfY3R4X2xvOwogfQogCitzdHJ1Y3QgcHJlZW1wdF9jbGllbnQgeworCXN0cnVjdCBp Z3Rfc3Bpbm5lciBzcGluOworCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cit9OworCitz dGF0aWMgaW50IHByZWVtcHRfY2xpZW50X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCisJCQkgICAgICAgc3RydWN0IHByZWVtcHRfY2xpZW50ICpjKQoreworCWMtPmN0eCA9IGtl cm5lbF9jb250ZXh0KGk5MTUpOworCWlmICghYy0+Y3R4KQorCQlyZXR1cm4gLUVOT01FTTsKKwor CWlmIChpZ3Rfc3Bpbm5lcl9pbml0KCZjLT5zcGluLCBpOTE1KSkKKwkJZ290byBlcnJfY3R4Owor CisJcmV0dXJuIDA7CisKK2Vycl9jdHg6CisJa2VybmVsX2NvbnRleHRfY2xvc2UoYy0+Y3R4KTsK KwlyZXR1cm4gLUVOT01FTTsKK30KKworc3RhdGljIHZvaWQgcHJlZW1wdF9jbGllbnRfZmluaShz dHJ1Y3QgcHJlZW1wdF9jbGllbnQgKmMpCit7CisJaWd0X3NwaW5uZXJfZmluaSgmYy0+c3Bpbik7 CisJa2VybmVsX2NvbnRleHRfY2xvc2UoYy0+Y3R4KTsKK30KKworc3RhdGljIGludCBsaXZlX3N1 cHByZXNzX3NlbGZfcHJlZW1wdCh2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBhcmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0cnVj dCBpOTE1X3NjaGVkX2F0dHIgYXR0ciA9IHsKKwkJLnByaW9yaXR5ID0gSTkxNV9VU0VSX1BSSU9S SVRZKEk5MTVfUFJJT1JJVFlfTUFYKQorCX07CisJc3RydWN0IHByZWVtcHRfY2xpZW50IGEsIGI7 CisJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CisJ aW50IGVyciA9IC1FTk9NRU07CisKKwkvKgorCSAqIFZlcmlmeSB0aGF0IGlmIGEgcHJlZW1wdGlv biByZXF1ZXN0IGRvZXMgbm90IGNhdXNlIGEgY2hhbmdlIGluCisJICogdGhlIGN1cnJlbnQgZXhl Y3V0aW9uIG9yZGVyLCB0aGUgcHJlZW1wdC10by1pZGxlIGluamVjdGlvbiBpcworCSAqIHNraXBw ZWQgYW5kIHRoYXQgd2UgZG8gbm90IGFjY2lkZW50YWxseSBhcHBseSBpdCBhZnRlciB0aGUgQ1MK KwkgKiBjb21wbGV0aW9uIGV2ZW50LgorCSAqLworCisJaWYgKCFIQVNfTE9HSUNBTF9SSU5HX1BS RUVNUFRJT04oaTkxNSkpCisJCXJldHVybiAwOworCisJaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04o aTkxNSkpCisJCXJldHVybiAwOyAvKiBwcmVzdW1lIGJsYWNrIGJsb3ggKi8KKworCW11dGV4X2xv Y2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3Bt X2dldChpOTE1KTsKKworCWlmIChwcmVlbXB0X2NsaWVudF9pbml0KGk5MTUsICZhKSkKKwkJZ290 byBlcnJfdW5sb2NrOworCWlmIChwcmVlbXB0X2NsaWVudF9pbml0KGk5MTUsICZiKSkKKwkJZ290 byBlcnJfY2xpZW50X2E7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBpZCkgewor CQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycV9hLCAqcnFfYjsKKwkJaW50IGRlcHRoOworCisJCWVu Z2luZS0+ZXhlY2xpc3RzLnByZWVtcHRfaGFuZy5jb3VudCA9IDA7CisKKwkJcnFfYSA9IGlndF9z cGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZhLnNwaW4sCisJCQkJCQkgIGEuY3R4LCBlbmdpbmUsCisJ CQkJCQkgIE1JX05PT1ApOworCQlpZiAoSVNfRVJSKHJxX2EpKSB7CisJCQllcnIgPSBQVFJfRVJS KHJxX2EpOworCQkJZ290byBlcnJfY2xpZW50X2I7CisJCX0KKworCQlpOTE1X3JlcXVlc3RfYWRk KHJxX2EpOworCQlpZiAoIWlndF93YWl0X2Zvcl9zcGlubmVyKCZhLnNwaW4sIHJxX2EpKSB7CisJ CQlwcl9lcnIoIkZpcnN0IGNsaWVudCBmYWlsZWQgdG8gc3RhcnRcbiIpOworCQkJZ290byBlcnJf d2VkZ2VkOworCQl9CisKKwkJZm9yIChkZXB0aCA9IDA7IGRlcHRoIDwgODsgZGVwdGgrKykgewor CQkJcnFfYiA9IGlndF9zcGlubmVyX2NyZWF0ZV9yZXF1ZXN0KCZiLnNwaW4sCisJCQkJCQkJICBi LmN0eCwgZW5naW5lLAorCQkJCQkJCSAgTUlfTk9PUCk7CisJCQlpZiAoSVNfRVJSKHJxX2IpKSB7 CisJCQkJZXJyID0gUFRSX0VSUihycV9iKTsKKwkJCQlnb3RvIGVycl9jbGllbnRfYjsKKwkJCX0K KwkJCWk5MTVfcmVxdWVzdF9hZGQocnFfYik7CisKKwkJCUdFTV9CVUdfT04oaTkxNV9yZXF1ZXN0 X2NvbXBsZXRlZChycV9hKSk7CisJCQllbmdpbmUtPnNjaGVkdWxlKHJxX2EsICZhdHRyKTsKKwkJ CWlndF9zcGlubmVyX2VuZCgmYS5zcGluKTsKKworCQkJaWYgKCFpZ3Rfd2FpdF9mb3Jfc3Bpbm5l cigmYi5zcGluLCBycV9iKSkgeworCQkJCXByX2VycigiU2Vjb25kIGNsaWVudCBmYWlsZWQgdG8g c3RhcnRcbiIpOworCQkJCWdvdG8gZXJyX3dlZGdlZDsKKwkJCX0KKworCQkJc3dhcChhLCBiKTsK KwkJCXJxX2EgPSBycV9iOworCQl9CisJCWlndF9zcGlubmVyX2VuZCgmYS5zcGluKTsKKworCQlp ZiAoZW5naW5lLT5leGVjbGlzdHMucHJlZW1wdF9oYW5nLmNvdW50KSB7CisJCQlwcl9lcnIoIlBy ZWVtcHRpb24gcmVjb3JkZWQgeCVkLCBkZXB0aCAlZDsgc2hvdWxkIGhhdmUgYmVlbiBzdXBwcmVz c2VkIVxuIiwKKwkJCSAgICAgICBlbmdpbmUtPmV4ZWNsaXN0cy5wcmVlbXB0X2hhbmcuY291bnQs CisJCQkgICAgICAgZGVwdGgpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyX2NsaWVu dF9iOworCQl9CisKKwkJaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQp KQorCQkJZ290byBlcnJfd2VkZ2VkOworCX0KKworCWVyciA9IDA7CitlcnJfY2xpZW50X2I6CisJ cHJlZW1wdF9jbGllbnRfZmluaSgmYik7CitlcnJfY2xpZW50X2E6CisJcHJlZW1wdF9jbGllbnRf ZmluaSgmYSk7CitlcnJfdW5sb2NrOgorCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dB SVRfTE9DS0VEKSkKKwkJZXJyID0gLUVJTzsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3 YWtlcmVmKTsKKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXJldHVy biBlcnI7CisKK2Vycl93ZWRnZWQ6CisJaWd0X3NwaW5uZXJfZW5kKCZiLnNwaW4pOworCWlndF9z cGlubmVyX2VuZCgmYS5zcGluKTsKKwlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOworCWVyciA9 IC1FSU87CisJZ290byBlcnJfY2xpZW50X2I7Cit9CisKIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0 X2hhbmcodm9pZCAqYXJnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJn OwpAQCAtNjQ3LDYgKzc4NCw3IEBAIGludCBpbnRlbF9leGVjbGlzdHNfbGl2ZV9zZWxmdGVzdHMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCVNVQlRFU1QobGl2ZV9zYW5pdHljaGVj ayksCiAJCVNVQlRFU1QobGl2ZV9wcmVlbXB0KSwKIAkJU1VCVEVTVChsaXZlX2xhdGVfcHJlZW1w dCksCisJCVNVQlRFU1QobGl2ZV9zdXBwcmVzc19zZWxmX3ByZWVtcHQpLAogCQlTVUJURVNUKGxp dmVfcHJlZW1wdF9oYW5nKSwKIAkJU1VCVEVTVChsaXZlX3ByZWVtcHRfc21va2UpLAogCX07Ci0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=