From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH] drm/i915/selftests/blt: try to be more resilient against the GGTT Date: Tue, 5 Nov 2019 11:21:15 +0000 Message-ID: <20191105112115.9060-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 63B146E9E2 for ; Tue, 5 Nov 2019 11:21:18 +0000 (UTC) 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 Rm9yIGEgdGlueSBzaGFyZWQgYWRkcmVzcyBzcGFjZSwgd2hlcmUgcGFydHMgb2YgaXQgbWlnaHQg YWxyZWFkeSBiZQpyZXNlcnZlZCwgd2Ugc2hvdWxkIGV4cGVjdCB0byBoaXQgdGhlIG9jY2FzaW9u YWwgLUVOT1NQQy4KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3df YnVnLmNnaT9pZD0xMTIxNzYKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1 bGRAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Ci0tLQogLi4uL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMgIHwgMTAz ICsrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDQy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxm dGVzdHMvaTkxNV9nZW1fb2JqZWN0X2JsdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKaW5kZXggZTgxMzJhY2EwYmI2Li45NmZkZjA2 NTA2MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkx NV9nZW1fb2JqZWN0X2JsdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVz dHMvaTkxNV9nZW1fb2JqZWN0X2JsdC5jCkBAIC0yMDEsNiArMjAxLDcgQEAgc3RhdGljIGludCBp Z3RfZmlsbF9ibHRfdGhyZWFkKHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAJ dW5zaWduZWQgaW50IHByaW87CiAJSUdUX1RJTUVPVVQoZW5kKTsKKwl1NjQgdG90YWw7CiAJaW50 IGVycjsKIAogCWZpbGUgPSBtb2NrX2ZpbGUoaTkxNSk7CkBAIC0yMTksMjcgKzIyMCwzMSBAQCBz dGF0aWMgaW50IGlndF9maWxsX2JsdF90aHJlYWQodm9pZCAqYXJnKQogCWNlID0gaTkxNV9nZW1f Y29udGV4dF9nZXRfZW5naW5lKGN0eCwgQkNTMCk7CiAJR0VNX0JVR19PTihJU19FUlIoY2UpKTsK IAorCXRvdGFsID0gY2UtPnZtLT50b3RhbDsKKworCS8qCisJICogSWYgd2UgaGF2ZSBhIHRpbnkg c2hhcmVkIGFkZHJlc3Mgc3BhY2UsIGxpa2UgZm9yIHRoZSBHR1RUCisJICogdGhlbiB3ZSBjYW4n dCBiZSB0b28gZ3JlZWR5LgorCSAqLworCWlmIChpOTE1X2lzX2dndHQoY2UtPnZtKSkgeworCQl0 b3RhbCA+Pj0gNDsgLyogRHVtYiBoZXVyaXN0aWMgKi8KKwkJdG90YWwgPSBkaXY2NF91NjQodG90 YWwsIHRocmVhZC0+bl9jcHVzKTsKKwl9CisKIAlkbyB7CiAJCWNvbnN0IHUzMiBtYXhfYmxvY2tf c2l6ZSA9IFMxNl9NQVggKiBQQUdFX1NJWkU7CiAJCXUzMiB2YWwgPSBwcmFuZG9tX3UzMl9zdGF0 ZShwcm5nKTsKLQkJdTY0IHRvdGFsID0gY2UtPnZtLT50b3RhbDsKIAkJdTMyIHBoeXNfc3o7CiAJ CXUzMiBzejsKIAkJdTMyICp2YWRkcjsKIAkJdTMyIGk7CiAKLQkJLyoKLQkJICogSWYgd2UgaGF2 ZSBhIHRpbnkgc2hhcmVkIGFkZHJlc3Mgc3BhY2UsIGxpa2UgZm9yIHRoZSBHR1RUCi0JCSAqIHRo ZW4gd2UgY2FuJ3QgYmUgdG9vIGdyZWVkeS4KLQkJICovCi0JCWlmIChpOTE1X2lzX2dndHQoY2Ut PnZtKSkKLQkJCXRvdGFsID0gZGl2NjRfdTY0KHRvdGFsLCB0aHJlYWQtPm5fY3B1cyk7Ci0KLQkJ c3ogPSBtaW5fdCh1NjQsIHRvdGFsID4+IDQsIHByYW5kb21fdTMyX3N0YXRlKHBybmcpKTsKKwkJ R0VNX0JVR19PTih0b3RhbCA8IFBBR0VfU0laRSk7CisJCXN6ID0gbWluX3QodTY0LCB0b3RhbCwg cHJhbmRvbV91MzJfc3RhdGUocHJuZykpOwogCQlwaHlzX3N6ID0gc3ogJSAobWF4X2Jsb2NrX3Np emUgKyAxKTsKIAotCQlzeiA9IHJvdW5kX3VwKHN6LCBQQUdFX1NJWkUpOwotCQlwaHlzX3N6ID0g cm91bmRfdXAocGh5c19zeiwgUEFHRV9TSVpFKTsKKwkJc3ogPSBtYXhfdCh1MzIsIHJvdW5kX3Vw KHN6LCBQQUdFX1NJWkUpLCBQQUdFX1NJWkUpOworCQlwaHlzX3N6ID0gbWF4X3QodTMyLCByb3Vu ZF91cChwaHlzX3N6LCBQQUdFX1NJWkUpLCBQQUdFX1NJWkUpOwogCiAJCXByX2RlYnVnKCIlcyB3 aXRoIHBoeXNfc3o9ICV4LCBzej0leCwgdmFsPSV4XG4iLCBfX2Z1bmNfXywKIAkJCSBwaHlzX3N6 LCBzeiwgdmFsKTsKQEAgLTI0Nyw3ICsyNTIsNyBAQCBzdGF0aWMgaW50IGlndF9maWxsX2JsdF90 aHJlYWQodm9pZCAqYXJnKQogCQlvYmogPSBodWdlX2dlbV9vYmplY3QoaTkxNSwgcGh5c19zeiwg c3opOwogCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCWVyciA9IFBUUl9FUlIob2JqKTsKLQkJCWdv dG8gZXJyX2ZsdXNoOworCQkJYnJlYWs7CiAJCX0KIAogCQl2YWRkciA9IGk5MTVfZ2VtX29iamVj dF9waW5fbWFwKG9iaiwgSTkxNV9NQVBfV0IpOwpAQCAtMjY3LDggKzI3MiwxOSBAQCBzdGF0aWMg aW50IGlndF9maWxsX2JsdF90aHJlYWQodm9pZCAqYXJnKQogCQkJb2JqLT5jYWNoZV9kaXJ0eSA9 IHRydWU7CiAKIAkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X2ZpbGxfYmx0KG9iaiwgY2UsIHZhbCk7 Ci0JCWlmIChlcnIpCisJCWlmIChlcnIpIHsKKwkJCS8qCisJCQkgKiBUaGUgZ2d0dCBtYXkgaGF2 ZSBzb21lIHBhZ2VzIHJlc2VydmVkIHNvIHJlZnJhaW4KKwkJCSAqIGZyb20gZXJyb3Jpbmcgb3V0 LiBTaW1wbHkgcmVkdWNlIHRoZSBzaXplIGFuZCB0cnkKKwkJCSAqIGFnYWluIGlmIHdlIGhhdmUg dGltZS4KKwkJCSAqLworCQkJaWYgKGVyciA9PSAtRU5PU1BDICYmIGk5MTVfaXNfZ2d0dChjZS0+ dm0pKSB7CisJCQkJdG90YWwgPSBzeiA+PiAxOworCQkJCWVyciA9IDA7CisJCQl9CisKIAkJCWdv dG8gZXJyX3VucGluOworCQl9CiAKIAkJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKIAkJZXJy ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKG9iaiwgZmFsc2UpOwpAQCAtMjg0 LDE4ICszMDAsMTUgQEAgc3RhdGljIGludCBpZ3RfZmlsbF9ibHRfdGhyZWFkKHZvaWQgKmFyZykK IAkJCQlnb3RvIGVycl91bnBpbjsKIAkJCX0KIAkJfQotCitlcnJfdW5waW46CiAJCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9tYXAob2JqKTsKK2Vycl9wdXQ6CiAJCWk5MTVfZ2VtX29iamVjdF9wdXQo b2JqKTsKLQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmQpKTsKIAotCWdvdG8gZXJy X2ZsdXNoOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisJfSB3aGlsZSAoIXRpbWVfYWZ0ZXIoamlm ZmllcywgZW5kKSk7CiAKLWVycl91bnBpbjoKLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKG9i aik7Ci1lcnJfcHV0OgotCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLWVycl9mbHVzaDoKIAlp ZiAoZXJyID09IC1FTk9NRU0pCiAJCWVyciA9IDA7CiAKQEAgLTMxNiw2ICszMjksNyBAQCBzdGF0 aWMgaW50IGlndF9jb3B5X2JsdF90aHJlYWQodm9pZCAqYXJnKQogCXN0cnVjdCBkcm1fZmlsZSAq ZmlsZTsKIAl1bnNpZ25lZCBpbnQgcHJpbzsKIAlJR1RfVElNRU9VVChlbmQpOworCXU2NCB0b3Rh bDsKIAlpbnQgZXJyOwogCiAJZmlsZSA9IG1vY2tfZmlsZShpOTE1KTsKQEAgLTMzNCwyMyArMzQ4 LDI3IEBAIHN0YXRpYyBpbnQgaWd0X2NvcHlfYmx0X3RocmVhZCh2b2lkICphcmcpCiAJY2UgPSBp OTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCBCQ1MwKTsKIAlHRU1fQlVHX09OKElTX0VS UihjZSkpOwogCisJdG90YWwgPSBjZS0+dm0tPnRvdGFsID4+IDE7IC8qIFdlIG5lZWQgdG8gZml0 IHNyYyBhbmQgZHN0ICovCisKKwlpZiAoaTkxNV9pc19nZ3R0KGNlLT52bSkpIHsKKwkJdG90YWwg Pj49IDQ7CisJCXRvdGFsID0gZGl2NjRfdTY0KHRvdGFsLCB0aHJlYWQtPm5fY3B1cyk7CisJfQor CiAJZG8gewogCQljb25zdCB1MzIgbWF4X2Jsb2NrX3NpemUgPSBTMTZfTUFYICogUEFHRV9TSVpF OwogCQl1MzIgdmFsID0gcHJhbmRvbV91MzJfc3RhdGUocHJuZyk7Ci0JCXU2NCB0b3RhbCA9IGNl LT52bS0+dG90YWw7CiAJCXUzMiBwaHlzX3N6OwogCQl1MzIgc3o7CiAJCXUzMiAqdmFkZHI7CiAJ CXUzMiBpOwogCi0JCWlmIChpOTE1X2lzX2dndHQoY2UtPnZtKSkKLQkJCXRvdGFsID0gZGl2NjRf dTY0KHRvdGFsLCB0aHJlYWQtPm5fY3B1cyk7Ci0KLQkJc3ogPSBtaW5fdCh1NjQsIHRvdGFsID4+ IDQsIHByYW5kb21fdTMyX3N0YXRlKHBybmcpKTsKKwkJR0VNX0JVR19PTih0b3RhbCA8IDIgKiBQ QUdFX1NJWkUpOworCQlzeiA9IG1pbl90KHU2NCwgdG90YWwsIHByYW5kb21fdTMyX3N0YXRlKHBy bmcpKTsKIAkJcGh5c19zeiA9IHN6ICUgKG1heF9ibG9ja19zaXplICsgMSk7CiAKLQkJc3ogPSBy b3VuZF91cChzeiwgUEFHRV9TSVpFKTsKLQkJcGh5c19zeiA9IHJvdW5kX3VwKHBoeXNfc3osIFBB R0VfU0laRSk7CisJCXN6ID0gbWF4X3QodTMyLCByb3VuZF91cChzeiwgUEFHRV9TSVpFKSwgUEFH RV9TSVpFKTsKKwkJcGh5c19zeiA9IG1heF90KHUzMiwgcm91bmRfdXAocGh5c19zeiwgUEFHRV9T SVpFKSwgUEFHRV9TSVpFKTsKIAogCQlwcl9kZWJ1ZygiJXMgd2l0aCBwaHlzX3N6PSAleCwgc3o9 JXgsIHZhbD0leFxuIiwgX19mdW5jX18sCiAJCQkgcGh5c19zeiwgc3osIHZhbCk7CkBAIC0zNTgs NyArMzc2LDcgQEAgc3RhdGljIGludCBpZ3RfY29weV9ibHRfdGhyZWFkKHZvaWQgKmFyZykKIAkJ c3JjID0gaHVnZV9nZW1fb2JqZWN0KGk5MTUsIHBoeXNfc3osIHN6KTsKIAkJaWYgKElTX0VSUihz cmMpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHNyYyk7Ci0JCQlnb3RvIGVycl9mbHVzaDsKKwkJCWJy ZWFrOwogCQl9CiAKIAkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChzcmMsIEk5MTVf TUFQX1dCKTsKQEAgLTM5NCw4ICs0MTIsMTQgQEAgc3RhdGljIGludCBpZ3RfY29weV9ibHRfdGhy ZWFkKHZvaWQgKmFyZykKIAkJCWRzdC0+Y2FjaGVfZGlydHkgPSB0cnVlOwogCiAJCWVyciA9IGk5 MTVfZ2VtX29iamVjdF9jb3B5X2JsdChzcmMsIGRzdCwgY2UpOwotCQlpZiAoZXJyKQorCQlpZiAo ZXJyKSB7CisJCQlpZiAoZXJyID09IC1FTk9TUEMgJiYgaTkxNV9pc19nZ3R0KGNlLT52bSkpIHsK KwkJCQl0b3RhbCA9IHN6ID4+IDE7CisJCQkJZXJyID0gMDsKKwkJCX0KKwogCQkJZ290byBlcnJf dW5waW47CisJCX0KIAogCQlpOTE1X2dlbV9vYmplY3RfbG9jayhkc3QpOwogCQllcnIgPSBpOTE1 X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4oZHN0LCBmYWxzZSk7CkBAIC00MTEsMjIgKzQz NSwxNyBAQCBzdGF0aWMgaW50IGlndF9jb3B5X2JsdF90aHJlYWQodm9pZCAqYXJnKQogCQkJCWdv dG8gZXJyX3VucGluOwogCQkJfQogCQl9Ci0KK2Vycl91bnBpbjoKIAkJaTkxNV9nZW1fb2JqZWN0 X3VucGluX21hcChkc3QpOwotCi0JCWk5MTVfZ2VtX29iamVjdF9wdXQoc3JjKTsKK2Vycl9wdXRf ZHN0OgogCQlpOTE1X2dlbV9vYmplY3RfcHV0KGRzdCk7Ci0JfSB3aGlsZSAoIXRpbWVfYWZ0ZXIo amlmZmllcywgZW5kKSk7CitlcnJfcHV0X3NyYzoKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChzcmMp OwogCi0JZ290byBlcnJfZmx1c2g7CisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9IHdoaWxlICgh dGltZV9hZnRlcihqaWZmaWVzLCBlbmQpKTsKIAotZXJyX3VucGluOgotCWk5MTVfZ2VtX29iamVj dF91bnBpbl9tYXAoZHN0KTsKLWVycl9wdXRfZHN0OgotCWk5MTVfZ2VtX29iamVjdF9wdXQoZHN0 KTsKLWVycl9wdXRfc3JjOgotCWk5MTVfZ2VtX29iamVjdF9wdXQoc3JjKTsKLWVycl9mbHVzaDoK IAlpZiAoZXJyID09IC1FTk9NRU0pCiAJCWVyciA9IDA7CiAKLS0gCjIuMjAuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74BD4C010A3 for ; Tue, 5 Nov 2019 11:21:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 54F7D206BA for ; Tue, 5 Nov 2019 11:21:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 54F7D206BA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9C5FD6E9E2; Tue, 5 Nov 2019 11:21:19 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 63B146E9E2 for ; Tue, 5 Nov 2019 11:21:18 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Nov 2019 03:21:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,271,1569308400"; d="scan'208";a="376652973" Received: from robinyou-mobl.amr.corp.intel.com (HELO mwahaha-bdw.amr.corp.intel.com) ([10.255.230.200]) by orsmga005.jf.intel.com with ESMTP; 05 Nov 2019 03:21:16 -0800 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Date: Tue, 5 Nov 2019 11:21:15 +0000 Message-Id: <20191105112115.9060-1-matthew.auld@intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH] drm/i915/selftests/blt: try to be more resilient against the GGTT X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191105112115.lRQrEoT07BAVHAgHHZiD4UPgipV4LFDZV-FhA-6Xkwc@z> Rm9yIGEgdGlueSBzaGFyZWQgYWRkcmVzcyBzcGFjZSwgd2hlcmUgcGFydHMgb2YgaXQgbWlnaHQg YWxyZWFkeSBiZQpyZXNlcnZlZCwgd2Ugc2hvdWxkIGV4cGVjdCB0byBoaXQgdGhlIG9jY2FzaW9u YWwgLUVOT1NQQy4KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3df YnVnLmNnaT9pZD0xMTIxNzYKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1 bGRAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Ci0tLQogLi4uL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMgIHwgMTAz ICsrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDQy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxm dGVzdHMvaTkxNV9nZW1fb2JqZWN0X2JsdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmMKaW5kZXggZTgxMzJhY2EwYmI2Li45NmZkZjA2 NTA2MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkx NV9nZW1fb2JqZWN0X2JsdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVz dHMvaTkxNV9nZW1fb2JqZWN0X2JsdC5jCkBAIC0yMDEsNiArMjAxLDcgQEAgc3RhdGljIGludCBp Z3RfZmlsbF9ibHRfdGhyZWFkKHZvaWQgKmFyZykKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAJ dW5zaWduZWQgaW50IHByaW87CiAJSUdUX1RJTUVPVVQoZW5kKTsKKwl1NjQgdG90YWw7CiAJaW50 IGVycjsKIAogCWZpbGUgPSBtb2NrX2ZpbGUoaTkxNSk7CkBAIC0yMTksMjcgKzIyMCwzMSBAQCBz dGF0aWMgaW50IGlndF9maWxsX2JsdF90aHJlYWQodm9pZCAqYXJnKQogCWNlID0gaTkxNV9nZW1f Y29udGV4dF9nZXRfZW5naW5lKGN0eCwgQkNTMCk7CiAJR0VNX0JVR19PTihJU19FUlIoY2UpKTsK IAorCXRvdGFsID0gY2UtPnZtLT50b3RhbDsKKworCS8qCisJICogSWYgd2UgaGF2ZSBhIHRpbnkg c2hhcmVkIGFkZHJlc3Mgc3BhY2UsIGxpa2UgZm9yIHRoZSBHR1RUCisJICogdGhlbiB3ZSBjYW4n dCBiZSB0b28gZ3JlZWR5LgorCSAqLworCWlmIChpOTE1X2lzX2dndHQoY2UtPnZtKSkgeworCQl0 b3RhbCA+Pj0gNDsgLyogRHVtYiBoZXVyaXN0aWMgKi8KKwkJdG90YWwgPSBkaXY2NF91NjQodG90 YWwsIHRocmVhZC0+bl9jcHVzKTsKKwl9CisKIAlkbyB7CiAJCWNvbnN0IHUzMiBtYXhfYmxvY2tf c2l6ZSA9IFMxNl9NQVggKiBQQUdFX1NJWkU7CiAJCXUzMiB2YWwgPSBwcmFuZG9tX3UzMl9zdGF0 ZShwcm5nKTsKLQkJdTY0IHRvdGFsID0gY2UtPnZtLT50b3RhbDsKIAkJdTMyIHBoeXNfc3o7CiAJ CXUzMiBzejsKIAkJdTMyICp2YWRkcjsKIAkJdTMyIGk7CiAKLQkJLyoKLQkJICogSWYgd2UgaGF2 ZSBhIHRpbnkgc2hhcmVkIGFkZHJlc3Mgc3BhY2UsIGxpa2UgZm9yIHRoZSBHR1RUCi0JCSAqIHRo ZW4gd2UgY2FuJ3QgYmUgdG9vIGdyZWVkeS4KLQkJICovCi0JCWlmIChpOTE1X2lzX2dndHQoY2Ut PnZtKSkKLQkJCXRvdGFsID0gZGl2NjRfdTY0KHRvdGFsLCB0aHJlYWQtPm5fY3B1cyk7Ci0KLQkJ c3ogPSBtaW5fdCh1NjQsIHRvdGFsID4+IDQsIHByYW5kb21fdTMyX3N0YXRlKHBybmcpKTsKKwkJ R0VNX0JVR19PTih0b3RhbCA8IFBBR0VfU0laRSk7CisJCXN6ID0gbWluX3QodTY0LCB0b3RhbCwg cHJhbmRvbV91MzJfc3RhdGUocHJuZykpOwogCQlwaHlzX3N6ID0gc3ogJSAobWF4X2Jsb2NrX3Np emUgKyAxKTsKIAotCQlzeiA9IHJvdW5kX3VwKHN6LCBQQUdFX1NJWkUpOwotCQlwaHlzX3N6ID0g cm91bmRfdXAocGh5c19zeiwgUEFHRV9TSVpFKTsKKwkJc3ogPSBtYXhfdCh1MzIsIHJvdW5kX3Vw KHN6LCBQQUdFX1NJWkUpLCBQQUdFX1NJWkUpOworCQlwaHlzX3N6ID0gbWF4X3QodTMyLCByb3Vu ZF91cChwaHlzX3N6LCBQQUdFX1NJWkUpLCBQQUdFX1NJWkUpOwogCiAJCXByX2RlYnVnKCIlcyB3 aXRoIHBoeXNfc3o9ICV4LCBzej0leCwgdmFsPSV4XG4iLCBfX2Z1bmNfXywKIAkJCSBwaHlzX3N6 LCBzeiwgdmFsKTsKQEAgLTI0Nyw3ICsyNTIsNyBAQCBzdGF0aWMgaW50IGlndF9maWxsX2JsdF90 aHJlYWQodm9pZCAqYXJnKQogCQlvYmogPSBodWdlX2dlbV9vYmplY3QoaTkxNSwgcGh5c19zeiwg c3opOwogCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCWVyciA9IFBUUl9FUlIob2JqKTsKLQkJCWdv dG8gZXJyX2ZsdXNoOworCQkJYnJlYWs7CiAJCX0KIAogCQl2YWRkciA9IGk5MTVfZ2VtX29iamVj dF9waW5fbWFwKG9iaiwgSTkxNV9NQVBfV0IpOwpAQCAtMjY3LDggKzI3MiwxOSBAQCBzdGF0aWMg aW50IGlndF9maWxsX2JsdF90aHJlYWQodm9pZCAqYXJnKQogCQkJb2JqLT5jYWNoZV9kaXJ0eSA9 IHRydWU7CiAKIAkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X2ZpbGxfYmx0KG9iaiwgY2UsIHZhbCk7 Ci0JCWlmIChlcnIpCisJCWlmIChlcnIpIHsKKwkJCS8qCisJCQkgKiBUaGUgZ2d0dCBtYXkgaGF2 ZSBzb21lIHBhZ2VzIHJlc2VydmVkIHNvIHJlZnJhaW4KKwkJCSAqIGZyb20gZXJyb3Jpbmcgb3V0 LiBTaW1wbHkgcmVkdWNlIHRoZSBzaXplIGFuZCB0cnkKKwkJCSAqIGFnYWluIGlmIHdlIGhhdmUg dGltZS4KKwkJCSAqLworCQkJaWYgKGVyciA9PSAtRU5PU1BDICYmIGk5MTVfaXNfZ2d0dChjZS0+ dm0pKSB7CisJCQkJdG90YWwgPSBzeiA+PiAxOworCQkJCWVyciA9IDA7CisJCQl9CisKIAkJCWdv dG8gZXJyX3VucGluOworCQl9CiAKIAkJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2JqKTsKIAkJZXJy ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKG9iaiwgZmFsc2UpOwpAQCAtMjg0 LDE4ICszMDAsMTUgQEAgc3RhdGljIGludCBpZ3RfZmlsbF9ibHRfdGhyZWFkKHZvaWQgKmFyZykK IAkJCQlnb3RvIGVycl91bnBpbjsKIAkJCX0KIAkJfQotCitlcnJfdW5waW46CiAJCWk5MTVfZ2Vt X29iamVjdF91bnBpbl9tYXAob2JqKTsKK2Vycl9wdXQ6CiAJCWk5MTVfZ2VtX29iamVjdF9wdXQo b2JqKTsKLQl9IHdoaWxlICghdGltZV9hZnRlcihqaWZmaWVzLCBlbmQpKTsKIAotCWdvdG8gZXJy X2ZsdXNoOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CisJfSB3aGlsZSAoIXRpbWVfYWZ0ZXIoamlm ZmllcywgZW5kKSk7CiAKLWVycl91bnBpbjoKLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKG9i aik7Ci1lcnJfcHV0OgotCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKLWVycl9mbHVzaDoKIAlp ZiAoZXJyID09IC1FTk9NRU0pCiAJCWVyciA9IDA7CiAKQEAgLTMxNiw2ICszMjksNyBAQCBzdGF0 aWMgaW50IGlndF9jb3B5X2JsdF90aHJlYWQodm9pZCAqYXJnKQogCXN0cnVjdCBkcm1fZmlsZSAq ZmlsZTsKIAl1bnNpZ25lZCBpbnQgcHJpbzsKIAlJR1RfVElNRU9VVChlbmQpOworCXU2NCB0b3Rh bDsKIAlpbnQgZXJyOwogCiAJZmlsZSA9IG1vY2tfZmlsZShpOTE1KTsKQEAgLTMzNCwyMyArMzQ4 LDI3IEBAIHN0YXRpYyBpbnQgaWd0X2NvcHlfYmx0X3RocmVhZCh2b2lkICphcmcpCiAJY2UgPSBp OTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4LCBCQ1MwKTsKIAlHRU1fQlVHX09OKElTX0VS UihjZSkpOwogCisJdG90YWwgPSBjZS0+dm0tPnRvdGFsID4+IDE7IC8qIFdlIG5lZWQgdG8gZml0 IHNyYyBhbmQgZHN0ICovCisKKwlpZiAoaTkxNV9pc19nZ3R0KGNlLT52bSkpIHsKKwkJdG90YWwg Pj49IDQ7CisJCXRvdGFsID0gZGl2NjRfdTY0KHRvdGFsLCB0aHJlYWQtPm5fY3B1cyk7CisJfQor CiAJZG8gewogCQljb25zdCB1MzIgbWF4X2Jsb2NrX3NpemUgPSBTMTZfTUFYICogUEFHRV9TSVpF OwogCQl1MzIgdmFsID0gcHJhbmRvbV91MzJfc3RhdGUocHJuZyk7Ci0JCXU2NCB0b3RhbCA9IGNl LT52bS0+dG90YWw7CiAJCXUzMiBwaHlzX3N6OwogCQl1MzIgc3o7CiAJCXUzMiAqdmFkZHI7CiAJ CXUzMiBpOwogCi0JCWlmIChpOTE1X2lzX2dndHQoY2UtPnZtKSkKLQkJCXRvdGFsID0gZGl2NjRf dTY0KHRvdGFsLCB0aHJlYWQtPm5fY3B1cyk7Ci0KLQkJc3ogPSBtaW5fdCh1NjQsIHRvdGFsID4+ IDQsIHByYW5kb21fdTMyX3N0YXRlKHBybmcpKTsKKwkJR0VNX0JVR19PTih0b3RhbCA8IDIgKiBQ QUdFX1NJWkUpOworCQlzeiA9IG1pbl90KHU2NCwgdG90YWwsIHByYW5kb21fdTMyX3N0YXRlKHBy bmcpKTsKIAkJcGh5c19zeiA9IHN6ICUgKG1heF9ibG9ja19zaXplICsgMSk7CiAKLQkJc3ogPSBy b3VuZF91cChzeiwgUEFHRV9TSVpFKTsKLQkJcGh5c19zeiA9IHJvdW5kX3VwKHBoeXNfc3osIFBB R0VfU0laRSk7CisJCXN6ID0gbWF4X3QodTMyLCByb3VuZF91cChzeiwgUEFHRV9TSVpFKSwgUEFH RV9TSVpFKTsKKwkJcGh5c19zeiA9IG1heF90KHUzMiwgcm91bmRfdXAocGh5c19zeiwgUEFHRV9T SVpFKSwgUEFHRV9TSVpFKTsKIAogCQlwcl9kZWJ1ZygiJXMgd2l0aCBwaHlzX3N6PSAleCwgc3o9 JXgsIHZhbD0leFxuIiwgX19mdW5jX18sCiAJCQkgcGh5c19zeiwgc3osIHZhbCk7CkBAIC0zNTgs NyArMzc2LDcgQEAgc3RhdGljIGludCBpZ3RfY29weV9ibHRfdGhyZWFkKHZvaWQgKmFyZykKIAkJ c3JjID0gaHVnZV9nZW1fb2JqZWN0KGk5MTUsIHBoeXNfc3osIHN6KTsKIAkJaWYgKElTX0VSUihz cmMpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHNyYyk7Ci0JCQlnb3RvIGVycl9mbHVzaDsKKwkJCWJy ZWFrOwogCQl9CiAKIAkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChzcmMsIEk5MTVf TUFQX1dCKTsKQEAgLTM5NCw4ICs0MTIsMTQgQEAgc3RhdGljIGludCBpZ3RfY29weV9ibHRfdGhy ZWFkKHZvaWQgKmFyZykKIAkJCWRzdC0+Y2FjaGVfZGlydHkgPSB0cnVlOwogCiAJCWVyciA9IGk5 MTVfZ2VtX29iamVjdF9jb3B5X2JsdChzcmMsIGRzdCwgY2UpOwotCQlpZiAoZXJyKQorCQlpZiAo ZXJyKSB7CisJCQlpZiAoZXJyID09IC1FTk9TUEMgJiYgaTkxNV9pc19nZ3R0KGNlLT52bSkpIHsK KwkJCQl0b3RhbCA9IHN6ID4+IDE7CisJCQkJZXJyID0gMDsKKwkJCX0KKwogCQkJZ290byBlcnJf dW5waW47CisJCX0KIAogCQlpOTE1X2dlbV9vYmplY3RfbG9jayhkc3QpOwogCQllcnIgPSBpOTE1 X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4oZHN0LCBmYWxzZSk7CkBAIC00MTEsMjIgKzQz NSwxNyBAQCBzdGF0aWMgaW50IGlndF9jb3B5X2JsdF90aHJlYWQodm9pZCAqYXJnKQogCQkJCWdv dG8gZXJyX3VucGluOwogCQkJfQogCQl9Ci0KK2Vycl91bnBpbjoKIAkJaTkxNV9nZW1fb2JqZWN0 X3VucGluX21hcChkc3QpOwotCi0JCWk5MTVfZ2VtX29iamVjdF9wdXQoc3JjKTsKK2Vycl9wdXRf ZHN0OgogCQlpOTE1X2dlbV9vYmplY3RfcHV0KGRzdCk7Ci0JfSB3aGlsZSAoIXRpbWVfYWZ0ZXIo amlmZmllcywgZW5kKSk7CitlcnJfcHV0X3NyYzoKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChzcmMp OwogCi0JZ290byBlcnJfZmx1c2g7CisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9IHdoaWxlICgh dGltZV9hZnRlcihqaWZmaWVzLCBlbmQpKTsKIAotZXJyX3VucGluOgotCWk5MTVfZ2VtX29iamVj dF91bnBpbl9tYXAoZHN0KTsKLWVycl9wdXRfZHN0OgotCWk5MTVfZ2VtX29iamVjdF9wdXQoZHN0 KTsKLWVycl9wdXRfc3JjOgotCWk5MTVfZ2VtX29iamVjdF9wdXQoc3JjKTsKLWVycl9mbHVzaDoK IAlpZiAoZXJyID09IC1FTk9NRU0pCiAJCWVyciA9IDA7CiAKLS0gCjIuMjAuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4