From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 43/43] drm/i915: Move object close under its own lock Date: Wed, 6 Mar 2019 14:25:17 +0000 Message-ID: <20190306142517.22558-44-chris@chris-wilson.co.uk> References: <20190306142517.22558-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 5B495894D7 for ; Wed, 6 Mar 2019 14:25:37 +0000 (UTC) In-Reply-To: <20190306142517.22558-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 Cc: matthew.auld@intel.com List-Id: intel-gfx@lists.freedesktop.org VXNlIGk5MTVfZ2VtX29iamVjdF9sb2NrKCkgdG8gZ3VhcmQgdGhlIExVVCBhbmQgYWN0aXZlIHJl ZmVyZW5jZSB0bwphbGxvdyB1cyB0byBicmVhayBmcmVlIG9mIHN0cnVjdF9tdXRleCBmb3IgaGFu ZGxpbmcgR0VNX0NMT1NFLgoKVGVzdGNhc2U6IGlndC9nZW1fY2xvc2VfcmFjZQpTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jICAgfCAxNSArKystLS0KIC4uLi9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHRfdHlwZXMuaCB8ICA2IC0tLQogLi4uL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAgIHwgMjIgKysrKystLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYyAgICB8IDUxICsrKysrKysr KysrKystLS0tLS0KIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5o ICB8ICAxIC0KIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuYyB8 ICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICA0 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAgMSAr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgICAgICAgfCA0MSArKysr KysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggICAgICAgICAgICAg ICB8IDE1ICsrKy0tLQogLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNl LmMgIHwgIDEgKwogMTEgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2Nv bnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKaW5k ZXggZDViZGRmZDNmNDJkLi5kYWM1MGNmNjc0NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMTEyLDIzICsxMTIsMTcgQEAgdm9pZCBpOTE1X2x1 dF9oYW5kbGVfZnJlZShzdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlICpsdXQpCiAKIHN0YXRpYyB2b2lk IGx1dF9jbG9zZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogewotCXN0cnVjdCBpOTE1 X2x1dF9oYW5kbGUgKmx1dCwgKmxuOwogCXN0cnVjdCByYWRpeF90cmVlX2l0ZXIgaXRlcjsKIAl2 b2lkIF9fcmN1ICoqc2xvdDsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShsdXQsIGxuLCAm Y3R4LT5oYW5kbGVzX2xpc3QsIGN0eF9saW5rKSB7Ci0JCWxpc3RfZGVsKCZsdXQtPm9ial9saW5r KTsKLQkJaTkxNV9sdXRfaGFuZGxlX2ZyZWUobHV0KTsKLQl9CisJbG9ja2RlcF9hc3NlcnRfaGVs ZCgmY3R4LT5tdXRleCk7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CiAJcmFkaXhfdHJlZV9mb3JfZWFj aF9zbG90KHNsb3QsICZjdHgtPmhhbmRsZXNfdm1hLCAmaXRlciwgMCkgewogCQlzdHJ1Y3QgaTkx NV92bWEgKnZtYSA9IHJjdV9kZXJlZmVyZW5jZV9yYXcoKnNsb3QpOwogCiAJCXJhZGl4X3RyZWVf aXRlcl9kZWxldGUoJmN0eC0+aGFuZGxlc192bWEsICZpdGVyLCBzbG90KTsKLQogCQl2bWEtPm9w ZW5fY291bnQtLTsKLQkJaTkxNV92bWFfcHV0KHZtYSk7CiAJfQogCXJjdV9yZWFkX3VubG9jaygp OwogfQpAQCAtMzExLDYgKzMwNSw4IEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dF9yZWxlYXNlKHN0 cnVjdCBrcmVmICpyZWYpCiAKIHN0YXRpYyB2b2lkIGNvbnRleHRfY2xvc2Uoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCkKIHsKKwltdXRleF9sb2NrKCZjdHgtPm11dGV4KTsKKwogCWk5MTVf Z2VtX2NvbnRleHRfc2V0X2Nsb3NlZChjdHgpOwogCiAJLyoKQEAgLTMyOSw2ICszMjUsOCBAQCBz dGF0aWMgdm9pZCBjb250ZXh0X2Nsb3NlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCiAJ CWk5MTVfcHBndHRfY2xvc2UoY3R4LT5wcGd0dCk7CiAKIAljdHgtPmZpbGVfcHJpdiA9IEVSUl9Q VFIoLUVCQURGKTsKKworCW11dGV4X3VubG9jaygmY3R4LT5tdXRleCk7CiAJaTkxNV9nZW1fY29u dGV4dF9wdXQoY3R4KTsKIH0KIApAQCAtMzc5LDcgKzM3Nyw2IEBAIF9fY3JlYXRlX2h3X2NvbnRl eHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXNwaW5fbG9ja19pbml0KCZj dHgtPmh3X2NvbnRleHRzX2xvY2spOwogCiAJSU5JVF9SQURJWF9UUkVFKCZjdHgtPmhhbmRsZXNf dm1hLCBHRlBfS0VSTkVMKTsKLQlJTklUX0xJU1RfSEVBRCgmY3R4LT5oYW5kbGVzX2xpc3QpOwog CUlOSVRfTElTVF9IRUFEKCZjdHgtPmh3X2lkX2xpbmspOwogCiAJLyogRGVmYXVsdCBjb250ZXh0 IHdpbGwgbmV2ZXIgaGF2ZSBhIGZpbGVfcHJpdiAqLwpAQCAtMTA0Myw3ICsxMDQwLDkgQEAgc3Rh dGljIGludCBzZXRfcHBndHQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJZ290byB1 bmxvY2s7CiAKIAkvKiBUZWFyZG93biB0aGUgZXhpc3Rpbmcgb2JqOnZtYSBjYWNoZSwgaXQgd2ls bCBoYXZlIHRvIGJlIHJlYnVpbHQuICovCisJbXV0ZXhfbG9jaygmY3R4LT5tdXRleCk7CiAJbHV0 X2Nsb3NlKGN0eCk7CisJbXV0ZXhfdW5sb2NrKCZjdHgtPm11dGV4KTsKIAogCW9sZCA9IF9fc2V0 X3BwZ3R0KGN0eCwgcHBndHQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fY29udGV4dF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX2NvbnRleHRfdHlwZXMuaAppbmRleCA0N2VkMWY2NWNjMDYuLjMzM2VlYWNlZjVlMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHRfdHlw ZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dF90eXBl cy5oCkBAIC0xNzcsMTIgKzE3Nyw2IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IHsKIAkgKiBw ZXIgdm0sIHdoaWNoIG1heSBiZSBvbmUgcGVyIGNvbnRleHQgb3Igc2hhcmVkIHdpdGggdGhlIGds b2JhbCBHVFQpCiAJICovCiAJc3RydWN0IHJhZGl4X3RyZWVfcm9vdCBoYW5kbGVzX3ZtYTsKLQot CS8qKiBoYW5kbGVzX2xpc3Q6IHJldmVyc2UgbGlzdCBvZiBhbGwgdGhlIHJidHJlZSBlbnRyaWVz IGluIHVzZSBmb3IKLQkgKiB0aGlzIGNvbnRleHQsIHdoaWNoIGFsbG93cyB1cyB0byBmcmVlIGFs bCB0aGUgYWxsb2NhdGlvbnMgb24KLQkgKiBjb250ZXh0IGNsb3NlLgotCSAqLwotCXN0cnVjdCBs aXN0X2hlYWQgaGFuZGxlc19saXN0OwogfTsKIAogI2VuZGlmIC8qIF9fSTkxNV9HRU1fQ09OVEVY VF9UWVBFU19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCmluZGV4IDU1ODE3ZWU3NTRiNS4uMThmNGEyMzY1NDBiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTc4NCw5ICs3ODQs NiBAQCBzdGF0aWMgaW50IGViX2xvb2t1cF92bWFzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmVi KQogCXVuc2lnbmVkIGludCBpLCBiYXRjaDsKIAlpbnQgZXJyOwogCi0JaWYgKHVubGlrZWx5KGk5 MTVfZ2VtX2NvbnRleHRfaXNfY2xvc2VkKGViLT5jdHgpKSkKLQkJcmV0dXJuIC1FTk9FTlQ7Ci0K IAlpZiAodW5saWtlbHkoaTkxNV9nZW1fY29udGV4dF9pc19iYW5uZWQoZWItPmN0eCkpKQogCQly ZXR1cm4gLUVJTzsKIApAQCAtNzk1LDYgKzc5MiwxMiBAQCBzdGF0aWMgaW50IGViX2xvb2t1cF92 bWFzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCiAJYmF0Y2ggPSBlYl9iYXRjaF9pbmRl eChlYik7CiAKKwltdXRleF9sb2NrKCZlYi0+Y3R4LT5tdXRleCk7CisJaWYgKHVubGlrZWx5KGk5 MTVfZ2VtX2NvbnRleHRfaXNfY2xvc2VkKGViLT5jdHgpKSkgeworCQllcnIgPSAtRU5PRU5UOwor CQlnb3RvIGVycl9jdHg7CisJfQorCiAJZm9yIChpID0gMDsgaSA8IGViLT5idWZmZXJfY291bnQ7 IGkrKykgewogCQl1MzIgaGFuZGxlID0gZWItPmV4ZWNbaV0uaGFuZGxlOwogCQlzdHJ1Y3QgaTkx NV9sdXRfaGFuZGxlICpsdXQ7CkBAIC04MzEsMTAgKzgzNCwxMyBAQCBzdGF0aWMgaW50IGViX2xv b2t1cF92bWFzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCQkvKiB0cmFuc2ZlciByZWYg dG8gY3R4ICovCiAJCWlmICghdm1hLT5vcGVuX2NvdW50KyspCiAJCQlpOTE1X3ZtYV9yZW9wZW4o dm1hKTsKLQkJbGlzdF9hZGQoJmx1dC0+b2JqX2xpbmssICZvYmotPmx1dF9saXN0KTsKLQkJbGlz dF9hZGQoJmx1dC0+Y3R4X2xpbmssICZlYi0+Y3R4LT5oYW5kbGVzX2xpc3QpOwotCQlsdXQtPmN0 eCA9IGViLT5jdHg7CisKIAkJbHV0LT5oYW5kbGUgPSBoYW5kbGU7CisJCWx1dC0+Y3R4ID0gaTkx NV9nZW1fY29udGV4dF9nZXQoZWItPmN0eCk7CisKKwkJaTkxNV9nZW1fb2JqZWN0X2xvY2sob2Jq KTsKKwkJbGlzdF9hZGQoJmx1dC0+b2JqX2xpbmssICZvYmotPmx1dF9saXN0KTsKKwkJaTkxNV9n ZW1fb2JqZWN0X3VubG9jayhvYmopOwogCiBhZGRfdm1hOgogCQllcnIgPSBlYl9hZGRfdm1hKGVi LCBpLCBiYXRjaCwgdm1hKTsKQEAgLTg0Nyw2ICs4NTMsOCBAQCBzdGF0aWMgaW50IGViX2xvb2t1 cF92bWFzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCQkJICAgZWJfdm1hX21pc3BsYWNl ZCgmZWItPmV4ZWNbaV0sIHZtYSwgZWItPmZsYWdzW2ldKSk7CiAJfQogCisJbXV0ZXhfdW5sb2Nr KCZlYi0+Y3R4LT5tdXRleCk7CisKIAllYi0+YXJncy0+ZmxhZ3MgfD0gX19FWEVDX1ZBTElEQVRF RDsKIAlyZXR1cm4gZWJfcmVzZXJ2ZShlYik7CiAKQEAgLTg1NCw2ICs4NjIsOCBAQCBzdGF0aWMg aW50IGViX2xvb2t1cF92bWFzKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCWk5MTVfZ2Vt X29iamVjdF9wdXQob2JqKTsKIGVycl92bWE6CiAJZWItPnZtYVtpXSA9IE5VTEw7CitlcnJfY3R4 OgorCW11dGV4X3VubG9jaygmZWItPmN0eC0+bXV0ZXgpOwogCXJldHVybiBlcnI7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYwppbmRleCBkMjFhNzA5NTA5 MmMuLjdkYTlkYmFkNTVjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3QuYwpAQCAtMTI1LDQxICsxMjUsNjAgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3Rfc2V0X2Nh Y2hlX2NvaGVyZW5jeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkhKG9iai0+ Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5UX0ZPUl9XUklURSk7CiB9CiAK K3N0YXRpYyB2b2lkIGx1dF9oYW5kbGVfcmVsZWFzZShzdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlICps dXQpCit7CisJbGlzdF9kZWwoJmx1dC0+b2JqX2xpbmspOworCWk5MTVfZ2VtX2NvbnRleHRfcHV0 KGx1dC0+Y3R4KTsKKwlpOTE1X2x1dF9oYW5kbGVfZnJlZShsdXQpOworfQorCiB2b2lkIGk5MTVf Z2VtX2Nsb3NlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwgc3RydWN0IGRybV9m aWxlICpmaWxlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShn ZW0tPmRldik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHRvX2ludGVsX2Jv KGdlbSk7CiAJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZnByaXYgPSBmaWxlLT5kcml2 ZXJfcHJpdjsKIAlzdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlICpsdXQsICpsbjsKKwlMSVNUX0hFQUQo Y2xvc2UpOwogCi0JbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaTkxNV9n ZW1fb2JqZWN0X2xvY2sob2JqKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShsdXQsIGxu LCAmb2JqLT5sdXRfbGlzdCwgb2JqX2xpbmspIHsKIAkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCA9IGx1dC0+Y3R4OwotCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAotCQlHRU1fQlVHX09O KGN0eC0+ZmlsZV9wcml2ID09IEVSUl9QVFIoLUVCQURGKSk7Ci0JCWlmIChjdHgtPmZpbGVfcHJp diAhPSBmcHJpdikKKwkJLyogcHJ1bmUgYW55IHN0YWxlIGVudHJpZXMgKi8KKwkJaWYgKGk5MTVf Z2VtX2NvbnRleHRfaXNfY2xvc2VkKGN0eCkpIHsKKwkJCWx1dF9oYW5kbGVfcmVsZWFzZShsdXQp OworCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCQkJY29udGludWU7CisJCX0KIAotCQl2 bWEgPSByYWRpeF90cmVlX2RlbGV0ZSgmY3R4LT5oYW5kbGVzX3ZtYSwgbHV0LT5oYW5kbGUpOwot CQlHRU1fQlVHX09OKHZtYS0+b2JqICE9IG9iaik7CisJCWlmIChjdHgtPmZpbGVfcHJpdiA9PSBm cHJpdikKKwkJCWxpc3RfbW92ZSgmbHV0LT5vYmpfbGluaywgJmNsb3NlKTsKKwl9CiAKLQkJLyog V2UgYWxsb3cgdGhlIHByb2Nlc3MgdG8gaGF2ZSBtdWx0aXBsZSBoYW5kbGVzIHRvIHRoZSBzYW1l CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGx1dCwgbG4sICZjbG9zZSwgb2JqX2xpbmspIHsK KwkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IGx1dC0+Y3R4OworCQlzdHJ1Y3QgaTkx NV92bWEgKnZtYTsKKworCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7CisJCW11dGV4X2xv Y2soJmN0eC0+bXV0ZXgpOworCQkvKgorCQkgKiBXZSBhbGxvdyB0aGUgcHJvY2VzcyB0byBoYXZl IG11bHRpcGxlIGhhbmRsZXMgdG8gdGhlIHNhbWUKIAkJICogdm1hLCBpbiB0aGUgc2FtZSBmZCBu YW1lc3BhY2UsIGJ5IHZpcnR1ZSBvZiBmbGluay9vcGVuLgogCQkgKi8KLQkJR0VNX0JVR19PTigh dm1hLT5vcGVuX2NvdW50KTsKLQkJaWYgKCEtLXZtYS0+b3Blbl9jb3VudCAmJiAhaTkxNV92bWFf aXNfZ2d0dCh2bWEpKQotCQkJaTkxNV92bWFfY2xvc2Uodm1hKTsKLQotCQlsaXN0X2RlbCgmbHV0 LT5vYmpfbGluayk7Ci0JCWxpc3RfZGVsKCZsdXQtPmN0eF9saW5rKTsKKwkJdm1hID0gcmFkaXhf dHJlZV9kZWxldGUoJmN0eC0+aGFuZGxlc192bWEsIGx1dC0+aGFuZGxlKTsKKwkJaWYgKHZtYSkg eworCQkJR0VNX0JVR19PTighdm1hLT5vcGVuX2NvdW50KTsKKwkJCWlmICghLS12bWEtPm9wZW5f Y291bnQgJiYgIWk5MTVfdm1hX2lzX2dndHQodm1hKSkKKwkJCQlpOTE1X3ZtYV9jbG9zZSh2bWEp OworCQl9CisJCW11dGV4X3VubG9jaygmY3R4LT5tdXRleCk7CisJCWk5MTVfZ2VtX29iamVjdF9s b2NrKG9iaik7CiAKLQkJaTkxNV9sdXRfaGFuZGxlX2ZyZWUobHV0KTsKKwkJbHV0X2hhbmRsZV9y ZWxlYXNlKGx1dCk7CiAJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAl9CiAKLQltdXRleF91 bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWk5MTVfZ2VtX29iamVjdF91bmxvY2so b2JqKTsKIH0KIAogc3RhdGljIGJvb2wgZGlzY2FyZF9iYWNraW5nX3N0b3JhZ2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3RfdHlwZXMuaAppbmRleCA5ZjYxMjIwNzk1YTYuLjFkNDJiNzY4MTk0NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF90eXBl cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMu aApAQCAtMjQsNyArMjQsNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKICAqLwogc3Ry dWN0IGk5MTVfbHV0X2hhbmRsZSB7CiAJc3RydWN0IGxpc3RfaGVhZCBvYmpfbGluazsKLQlzdHJ1 Y3QgbGlzdF9oZWFkIGN0eF9saW5rOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJ dTMyIGhhbmRsZTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2Vs ZnRlc3RzL21vY2tfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0 cy9tb2NrX2NvbnRleHQuYwppbmRleCA3Zjg4ZmQ2YjNjZTguLmM5ZDk5Njk4MjFlMCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9tb2NrX2NvbnRleHQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL21vY2tfY29udGV4dC5jCkBA IC0yNiw3ICsyNiw2IEBAIG1vY2tfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKIAlzcGluX2xvY2tfaW5pdCgmY3R4LT5od19jb250ZXh0c19sb2NrKTsKIAogCUlOSVRfUkFE SVhfVFJFRSgmY3R4LT5oYW5kbGVzX3ZtYSwgR0ZQX0tFUk5FTCk7Ci0JSU5JVF9MSVNUX0hFQUQo JmN0eC0+aGFuZGxlc19saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmY3R4LT5od19pZF9saW5rKTsK IAlJTklUX0xJU1RfSEVBRCgmY3R4LT5hY3RpdmVfZW5naW5lcyk7CiAJbXV0ZXhfaW5pdCgmY3R4 LT5tdXRleCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBhMTVkN2E4MWEzMzAuLmE5NDhm YWMzNDZhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xOTgzLDEwICsxOTgzLDEyIEBA IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJfSB0aW1lbGluZXM7CiAKIAkJc3RydWN0IGxp c3RfaGVhZCBhY3RpdmVfcmluZ3M7Ci0JCXN0cnVjdCBsaXN0X2hlYWQgY2xvc2VkX3ZtYTsKIAkJ dW5zaWduZWQgbG9uZyBhY3RpdmVfZW5naW5lczsKIAkJdTMyIGFjdGl2ZV9yZXF1ZXN0czsKIAor CQlzdHJ1Y3QgbGlzdF9oZWFkIGNsb3NlZF92bWE7CisJCXNwaW5sb2NrX3QgY2xvc2VkX2xvY2s7 IC8qIGd1YXJkcyB0aGUgbGlzdCBvZiBjbG9zZWRfdm1hICovCisKIAkJLyoqCiAJCSAqIElzIHRo ZSBHUFUgY3VycmVudGx5IGNvbnNpZGVyZWQgaWRsZSwgb3IgYnVzeSBleGVjdXRpbmcKIAkJICog dXNlcnNwYWNlIHJlcXVlc3RzPyBXaGlsc3QgaWRsZSwgd2UgYWxsb3cgcnVudGltZSBwb3dlcgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggOGZjZmQxNzk1ODg1Li41NTEyYjQ0OTgxNDIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjA3OCw2ICsyMDc4LDcgQEAgaW50IGk5MTVfZ2Vt X2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJSU5JVF9M SVNUX0hFQUQoJmRldl9wcml2LT5ndC5hY3RpdmVfcmluZ3MpOwogCUlOSVRfTElTVF9IRUFEKCZk ZXZfcHJpdi0+Z3QuY2xvc2VkX3ZtYSk7CisJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5ndC5j bG9zZWRfbG9jayk7CiAKIAlpOTE1X2dlbV9pbml0X19tbShkZXZfcHJpdik7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jCmluZGV4IDc0MWFlNjZlZWZmOC4uOWU5NWE1NzJhZjcyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdm1hLmMKQEAgLTE0Miw2ICsxNDIsOCBAQCB2bWFfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJdm1hLT5zaXplID0gb2JqLT5iYXNlLnNpemU7CiAJdm1h LT5kaXNwbGF5X2FsaWdubWVudCA9IEk5MTVfR1RUX01JTl9BTElHTk1FTlQ7CiAKKwlJTklUX0xJ U1RfSEVBRCgmdm1hLT5jbG9zZWRfbGluayk7CisKIAlpZiAodmlldyAmJiB2aWV3LT50eXBlICE9 IEk5MTVfR0dUVF9WSUVXX05PUk1BTCkgewogCQl2bWEtPmdndHRfdmlldyA9ICp2aWV3OwogCQlp ZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19QQVJUSUFMKSB7CkBAIC03ODQsMTAgKzc4 Niw5IEBAIGludCBfX2k5MTVfdm1hX2RvX3BpbihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAogdm9p ZCBpOTE1X3ZtYV9jbG9zZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKLQlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZ2bWEtPnZtLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9IHZtYS0+dm0tPmk5MTU7CiAKIAlHRU1fQlVHX09OKGk5MTVfdm1h X2lzX2Nsb3NlZCh2bWEpKTsKLQl2bWEtPmZsYWdzIHw9IEk5MTVfVk1BX0NMT1NFRDsKIAogCS8q CiAJICogV2UgZGVmZXIgYWN0dWFsbHkgY2xvc2luZywgdW5iaW5kaW5nIGFuZCBkZXN0cm95aW5n IHRoZSBWTUEgdW50aWwKQEAgLTgwMSwxNyArODAyLDI2IEBAIHZvaWQgaTkxNV92bWFfY2xvc2Uo c3RydWN0IGk5MTVfdm1hICp2bWEpCiAJICogY2F1c2luZyB1cyB0byByZWJpbmQgdGhlIFZNQSBv bmNlIG1vcmUuIFRoaXMgZW5kcyB1cCBiZWluZyBhIGxvdAogCSAqIG9mIHdhc3RlZCB3b3JrIGZv ciB0aGUgc3RlYWR5IHN0YXRlLgogCSAqLwotCWxpc3RfYWRkX3RhaWwoJnZtYS0+Y2xvc2VkX2xp bmssICZ2bWEtPnZtLT5pOTE1LT5ndC5jbG9zZWRfdm1hKTsKKwlzcGluX2xvY2soJmk5MTUtPmd0 LmNsb3NlZF9sb2NrKTsKKwlsaXN0X2FkZCgmdm1hLT5jbG9zZWRfbGluaywgJmk5MTUtPmd0LmNs b3NlZF92bWEpOworCXNwaW5fdW5sb2NrKCZpOTE1LT5ndC5jbG9zZWRfbG9jayk7CiB9CiAKLXZv aWQgaTkxNV92bWFfcmVvcGVuKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQorc3RhdGljIHZvaWQgX19p OTE1X3ZtYV9yZW1vdmVfY2xvc2VkKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewotCWxvY2tkZXBf YXNzZXJ0X2hlbGQoJnZtYS0+dm0tPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gdm1hLT52bS0+aTkxNTsKIAotCWlmICh2bWEtPmZsYWdz ICYgSTkxNV9WTUFfQ0xPU0VEKSB7Ci0JCXZtYS0+ZmxhZ3MgJj0gfkk5MTVfVk1BX0NMT1NFRDsK LQkJbGlzdF9kZWwoJnZtYS0+Y2xvc2VkX2xpbmspOwotCX0KKwlpZiAoIWk5MTVfdm1hX2lzX2Ns b3NlZCh2bWEpKQorCQlyZXR1cm47CisKKwlzcGluX2xvY2soJmk5MTUtPmd0LmNsb3NlZF9sb2Nr KTsKKwlsaXN0X2RlbF9pbml0KCZ2bWEtPmNsb3NlZF9saW5rKTsKKwlzcGluX3VubG9jaygmaTkx NS0+Z3QuY2xvc2VkX2xvY2spOworfQorCit2b2lkIGk5MTVfdm1hX3Jlb3BlbihzdHJ1Y3QgaTkx NV92bWEgKnZtYSkKK3sKKwlfX2k5MTVfdm1hX3JlbW92ZV9jbG9zZWQodm1hKTsKIH0KIAogc3Rh dGljIHZvaWQgX19pOTE1X3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQpAQCAtODQ1 LDggKzg1NSw3IEBAIHZvaWQgaTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK IAogCUdFTV9CVUdfT04oaTkxNV92bWFfaXNfcGlubmVkKHZtYSkpOwogCi0JaWYgKGk5MTVfdm1h X2lzX2Nsb3NlZCh2bWEpKQotCQlsaXN0X2RlbCgmdm1hLT5jbG9zZWRfbGluayk7CisJX19pOTE1 X3ZtYV9yZW1vdmVfY2xvc2VkKHZtYSk7CiAKIAlXQVJOX09OKGk5MTVfdm1hX3VuYmluZCh2bWEp KTsKIAlHRU1fQlVHX09OKGk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKTsKQEAgLTg1OCwxMiArODY3 LDE2IEBAIHZvaWQgaTkxNV92bWFfcGFya2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqbmV4dDsKIAorCXNwaW5fbG9jaygmaTkxNS0+ Z3QuY2xvc2VkX2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIG5leHQsICZp OTE1LT5ndC5jbG9zZWRfdm1hLCBjbG9zZWRfbGluaykgewotCQlHRU1fQlVHX09OKCFpOTE1X3Zt YV9pc19jbG9zZWQodm1hKSk7CisJCWxpc3RfZGVsX2luaXQoJnZtYS0+Y2xvc2VkX2xpbmspOwor CQlzcGluX3VubG9jaygmaTkxNS0+Z3QuY2xvc2VkX2xvY2spOworCiAJCWk5MTVfdm1hX2Rlc3Ry b3kodm1hKTsKLQl9CiAKLQlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZpOTE1LT5ndC5jbG9zZWRf dm1hKSk7CisJCXNwaW5fbG9jaygmaTkxNS0+Z3QuY2xvc2VkX2xvY2spOworCX0KKwlzcGluX3Vu bG9jaygmaTkxNS0+Z3QuY2xvc2VkX2xvY2spOwogfQogCiBzdGF0aWMgdm9pZCBfX2k5MTVfdm1h X2lvdW5tYXAoc3RydWN0IGk5MTVfdm1hICp2bWEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAppbmRl eCA3MWFjN2VlODYyMGEuLjY3YmM2NzI0MWMxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCkBA IC0xMDQsMTAgKzEwNCw5IEBAIHN0cnVjdCBpOTE1X3ZtYSB7CiAKICNkZWZpbmUgSTkxNV9WTUFf R0dUVAkJQklUKDExKQogI2RlZmluZSBJOTE1X1ZNQV9DQU5fRkVOQ0UJQklUKDEyKQotI2RlZmlu ZSBJOTE1X1ZNQV9DTE9TRUQJCUJJVCgxMykKLSNkZWZpbmUgSTkxNV9WTUFfVVNFUkZBVUxUX0JJ VAkxNAorI2RlZmluZSBJOTE1X1ZNQV9VU0VSRkFVTFRfQklUCTEzCiAjZGVmaW5lIEk5MTVfVk1B X1VTRVJGQVVMVAlCSVQoSTkxNV9WTUFfVVNFUkZBVUxUX0JJVCkKLSNkZWZpbmUgSTkxNV9WTUFf R0dUVF9XUklURQlCSVQoMTUpCisjZGVmaW5lIEk5MTVfVk1BX0dHVFRfV1JJVEUJQklUKDE0KQog CiAJc3RydWN0IGk5MTVfYWN0aXZlIGFjdGl2ZTsKIAlzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVz dCBsYXN0X2ZlbmNlOwpAQCAtMTkwLDExICsxODksNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkx NV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUoY29uc3Qgc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJ cmV0dXJuIHZtYS0+ZmxhZ3MgJiBJOTE1X1ZNQV9DQU5fRkVOQ0U7CiB9CiAKLXN0YXRpYyBpbmxp bmUgYm9vbCBpOTE1X3ZtYV9pc19jbG9zZWQoY29uc3Qgc3RydWN0IGk5MTVfdm1hICp2bWEpCi17 Ci0JcmV0dXJuIHZtYS0+ZmxhZ3MgJiBJOTE1X1ZNQV9DTE9TRUQ7Ci19Ci0KIHN0YXRpYyBpbmxp bmUgYm9vbCBpOTE1X3ZtYV9zZXRfdXNlcmZhdWx0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewog CUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2VhYmxlKHZtYSkpOwpAQCAtMjEx LDYgKzIwNSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV92bWFfaGFzX3VzZXJmYXVsdChj b25zdCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAlyZXR1cm4gdGVzdF9iaXQoSTkxNV9WTUFfVVNF UkZBVUxUX0JJVCwgJnZtYS0+ZmxhZ3MpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV92 bWFfaXNfY2xvc2VkKGNvbnN0IHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQoreworCXJldHVybiAhbGlz dF9lbXB0eSgmdm1hLT5jbG9zZWRfbGluayk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdTMyIGk5MTVf Z2d0dF9vZmZzZXQoY29uc3Qgc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7CiAJR0VNX0JVR19PTigh aTkxNV92bWFfaXNfZ2d0dCh2bWEpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwppbmRleCA5MzBmOWNiMTY2MWYuLjM3YzlhNTcwNmY2OSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2Rldmlj ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2Uu YwpAQCAtMjA2LDYgKzIwNiw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9k ZXZpY2Uodm9pZCkKIAogCUlOSVRfTElTVF9IRUFEKCZpOTE1LT5ndC5hY3RpdmVfcmluZ3MpOwog CUlOSVRfTElTVF9IRUFEKCZpOTE1LT5ndC5jbG9zZWRfdm1hKTsKKwlzcGluX2xvY2tfaW5pdCgm aTkxNS0+Z3QuY2xvc2VkX2xvY2spOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9t dXRleCk7CiAKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4